main.percona_processlist_row_stats fails sporadically in 5.5.11

Bug #757602 reported by Alexey Kopytov on 2011-04-11
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
percona-projects-qa
Undecided
Alexey Kopytov

Bug Description

main.percona_processlist_row_stats fails sporadically due to a timeout. The reason is an incorrect synchronization in the test.

It sets 2 different signals to be emitted by 2 threads at certain points (thread1_ready and thread2_ready), and then it runs queries in both threads asynchronously, then it waits for both signals to arrive:

--connection default
SET DEBUG_SYNC= 'now WAIT_FOR thread1_ready';
SET DEBUG_SYNC= 'now WAIT_FOR thread2_ready';

The problem is that whenever a signal is emitted it "overwrites" the previously emitted signal value, so there can be just one signalled value at any point in time. So if thread2_ready is signalled after thread1_ready but before the master thread has blocked on thread1_ready, thread2_ready will overwrite it, so the master thread will never receive thread1_ready.

The solution is to start asynchronous queries and wait for the corresponding signal sequentially for each thread, i.e.:

# In thread 1
--send <query in thread 1>
# In master thread:
SET DEBUG_SYNC= 'now WAIT_FOR thread1_ready';
# In thread 2
--send <query in thread 2>
# In master thread:
SET DEBUG_SYNC= 'now WAIT_FOR thread2_ready';

Related branches

Changed in percona-projects-qa:
assignee: nobody → Alexey Kopytov (akopytov)
Changed in percona-projects-qa:
status: New → Fix Committed
Changed in percona-projects-qa:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers