Hi, Sergei! On May 26, Sergei Petrunia wrote: > I've got a problem with SHOW EXPLAIN and LOCK_thd_data. > > SHOW EXPLAIN was modeled after the KILL command: it's actions are: > > lock LOCK_thread_count; > find the thread $target_thr we need explain for; > lock $target_thr->LOCK_thd_data; > unlock LOCK_thread_count; > > send SHOW EXPLAIN request to $target_thr. > wait until request is executed (or discarded) > > unlock $target_thr->LOCK_thd_data; > > This scheme works, as long as the target thread doesn't select > from information_schema tables. With queries over I_S tables, it breaks, > because I_S table may try to acquire current_thd->LOCK_thd_data during > execution.
Why does it break? If you've acquired thd->LOCK_thd_data before that I_S table query, then it'll wait for you to release it. You release it when you start waiting. And that I_S table query will continue executing, notice your request, etc. If it acquired the mutex before you, you'll wait till it's released, that's all. Regards, Sergei _______________________________________________ Mailing list: https://launchpad.net/~maria-developers Post to : [email protected] Unsubscribe : https://launchpad.net/~maria-developers More help : https://help.launchpad.net/ListHelp

