main.percona_processlist_row_stats fails sporadically in 5.5.11

Bug #757602 reported by Alexey Kopytov
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
percona-projects-qa
Fix Released
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  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.