Bug #56475 Missing thread states in performance_schema.THREADS / SHOW PROFILE
Submitted: 1 Sep 2010 23:17 Modified: 22 Jul 2011 18:21
Reporter: Marc ALFF Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: Performance Schema Severity:S3 (Non-critical)
Version:5.6 OS:Any
Assigned to: Marc ALFF CPU Architecture:Any

[1 Sep 2010 23:17] Marc ALFF
Description:
Initially reported by Matthias Leich during the QA of WL#4674.

Reported separately, because the problem is independent of:
- the performance schema
- WL#4674 PERFORMANCE SCHEMA SETUP_ACTORS

Problem:

When a thread is blocked in the "waiting for table metadata state",
this state:
- is visible in SHOW PROCESSLIST
- is visible in INFORMATION_SCHEMA.PROCESSLIST
- is *not* visible in performance_schema.THREADS (with WL#4674)
- is *not* visible in SHOW PROFILE

The root cause is that THD::enter_cond() and THD::exit_cond()
do assign the proc_info variable directly (so the state is visible in the
information schema), but do not use the interface designed to capture
events thd_set_proc_info().

How to repeat:
Found by analysis and code review.

Suggested fix:
Call thd_set_proc_info() in THD::enter_cond()
[22 Jul 2011 18:21] Paul DuBois
Noted in 5.6.3 changelog.

Threads blocked in the waiting for table metadata state were not
visible in performance_schema.THREADS or SHOW PROFILE.