diff --git a/mysql-test/main/session_tracker_last_gtid.result b/mysql-test/main/session_tracker_sysvar.result similarity index 69% rename from mysql-test/main/session_tracker_last_gtid.result rename to mysql-test/main/session_tracker_sysvar.result index da94e64ac14..6b56cb400b8 100644 --- a/mysql-test/main/session_tracker_last_gtid.result +++ b/mysql-test/main/session_tracker_sysvar.result @@ -28,3 +28,12 @@ drop table t1; -- last_gtid: 0-1-1002 reset master; +# +# MDEV-35086 Trying to lock mutex when the mutex was already locked (session_tracker.cc), server hangs +# +set session_track_system_variables='*'; +alter table t1 nowait force; +ERROR 42S02: Table 'test.t1' doesn't exist +use mysql; +set session_track_system_variables=default; +# End of 10.5 tests diff --git a/mysql-test/main/session_tracker_last_gtid.test b/mysql-test/main/session_tracker_sysvar.test similarity index 61% rename from mysql-test/main/session_tracker_last_gtid.test rename to mysql-test/main/session_tracker_sysvar.test index 58aee2de837..54b69782697 100644 --- a/mysql-test/main/session_tracker_last_gtid.test +++ b/mysql-test/main/session_tracker_sysvar.test @@ -18,3 +18,14 @@ drop table t1; --disable_session_track_info reset master; + +--echo # +--echo # MDEV-35086 Trying to lock mutex when the mutex was already locked (session_tracker.cc), server hangs +--echo # +set session_track_system_variables='*'; +--error ER_NO_SUCH_TABLE +alter table t1 nowait force; +use mysql; +set session_track_system_variables=default; + +--echo # End of 10.5 tests diff --git a/sql/session_tracker.cc b/sql/session_tracker.cc index cd3491ca9f3..8e5e4d2142d 100644 --- a/sql/session_tracker.cc +++ b/sql/session_tracker.cc @@ -433,6 +433,7 @@ bool Session_sysvars_tracker::vars_list::store(THD *thd, String *buf) if (!*node->test_load) { mysql_mutex_unlock(&LOCK_plugin); + mysql_mutex_unlock(&LOCK_global_system_variables); continue; } sys_var *svar= node->m_svar;