← Back to team overview

maria-developers team mailing list archive

Re: 5.5 merge status

 

Hi, Kristian!

About LOCK_log, LOCK_index, LOCK_thread_count and the Bug#62614:

1. In mysql-5.5.13, that we're merging with, LOCK_thread_count is called
   *after* LOCK_log and LOCK_index. Perhaps it was your merge of log.cc
   where you swapped them.

2. But in the latest 5.5 as on launchpad, LOCK_thread_count comes before
   LOCK_log and LOCK_index - they've changed it recently.

3. LOCK_thd_data should go after LOCK_thread_count, because
   LOCK_thread_count is taken around 'delete thd', and LOCK_thd_data -
   in the THD destructor.

4. LOCK_log should go after LOCK_thd_data, because LOCK_thd_data is
   taken around THD::awake(), and THD::awake() locks,
   mysys_var->current_mutex, which is LOCK_log in
   MYSQL_BIN_LOG::wait_for_update_relay_log()

5. from 3 and 4 follows that LOCK_thread_count should be locked before
   LOCK_log, not after. Incidentally, when I did that, almost all safemutex
   deadlock detector warnings dissapeared (those that I've seen in every
   rpl test; there are be few in individual tests still).

Regards,
Sergei


Follow ups

References