Deadlock chain:
rdlock(LOCK_logger) -> lock(LOCK_open) SELECT 1
|
lock(LOCK_open) -> lock(LOCK_status) DROP TABLE t1
|
lock(LOCK_status) -> lock(LOCK_global_system_variables) SHOW STATUS
|
lock(LOCK_global_system_variables) -> wrlock(LOCK_logger) SET @@global.log_output=DEFAULT
|
MTR test to reproduce this deadlock:
--source include/have_example_plugin.inc
|
|
SET @@global.log_output='TABLE';
|
INSTALL SONAME 'ha_example';
|
CREATE TABLE t1(a int) ENGINE=EXAMPLE;
|
SELECT * FROM t1;
|
UNINSTALL SONAME 'ha_example';
|
|
connect(con1, localhost, root,,);
|
connect(con2, localhost, root,,);
|
connect(con3, localhost, root,,);
|
|
connection con1;
|
SET debug_sync='fix_log_output SIGNAL ready WAIT_FOR go';
|
send SET @@global.log_output=DEFAULT;
|
|
connection con2;
|
SET debug_sync='now WAIT_FOR ready';
|
SET debug_sync='fill_status SIGNAL ready';
|
send SHOW STATUS LIKE 'slave_open_temp_tables';
|
|
connection con3;
|
SET debug_sync='now WAIT_FOR ready';
|
SET debug_sync='remove_status_vars SIGNAL ready';
|
send DROP TABLE t1;
|
|
connection default;
|
SELECT 1;
|
|
connection con1;
|
reap;
|
disconnect con1;
|
|
connection con2;
|
reap;
|
disconnect con2;
|
|
connection con3;
|
reap;
|
disconnect con3;
|
|
connection default;
|
SET debug_sync='RESET';
|
Debug sync points:
=== modified file 'sql/log.cc'
|
--- sql/log.cc 2014-08-02 19:26:16 +0000
|
+++ sql/log.cc 2014-09-24 11:02:19 +0000
|
@@ -600,6 +600,11 @@ void Log_to_csv_event_handler::cleanup()
|
ulonglong save_thd_options;
|
bool save_time_zone_used;
|
DBUG_ENTER("log_general");
|
+ if (!strncmp(sql_text, "SELECT 1", sql_text_len))
|
+ {
|
+ debug_sync_set_action(thd, STRING_WITH_LEN("now WAIT_FOR ready"));
|
+ debug_sync_set_action(thd, STRING_WITH_LEN("now SIGNAL go"));
|
+ }
|
|
/*
|
CSV uses TIME_to_timestamp() internally if table needs to be repaired
|
|
=== modified file 'sql/sql_show.cc'
|
--- sql/sql_show.cc 2014-09-12 06:41:35 +0000
|
+++ sql/sql_show.cc 2014-09-24 09:58:42 +0000
|
@@ -2543,6 +2543,7 @@ void remove_status_vars(SHOW_VAR *list)
|
{
|
if (status_vars_inited)
|
{
|
+ DEBUG_SYNC(current_thd, "remove_status_vars");
|
mysql_mutex_lock(&LOCK_status);
|
SHOW_VAR *all= dynamic_element(&all_status_vars, 0, SHOW_VAR *);
|
|
@@ -6986,6 +6987,7 @@ int fill_status(THD *thd, TABLE_LIST *ta
|
partial_cond->val_int();
|
|
mysql_mutex_lock(&LOCK_status);
|
+ DEBUG_SYNC(thd, "fill_status");
|
if (option_type == OPT_GLOBAL)
|
calc_sum_of_all_status(&tmp);
|
res= show_status_array(thd, wild,
|
|
=== modified file 'sql/sys_vars.cc'
|
--- sql/sys_vars.cc 2014-08-02 19:26:16 +0000
|
+++ sql/sys_vars.cc 2014-09-24 10:48:38 +0000
|
@@ -3246,6 +3246,7 @@ static bool check_not_empty_set(sys_var
|
}
|
static bool fix_log_output(sys_var *self, THD *thd, enum_var_type type)
|
{
|
+ DEBUG_SYNC(thd, "fix_log_output");
|
logger.lock_exclusive();
|
logger.init_slow_log(log_output_options);
|
logger.init_general_log(log_output_options);
|
|
- is part of
-
MDEV-5089
possible deadlocks between rwlocks and mutexes
-
-
Closed
{"report":{"fcp":979.5,"ttfb":176.5,"pageVisibility":"visible","entityId":45409,"key":"jira.project.issue.view-issue","isInitial":true,"threshold":1000,"elementTimings":{},"userDeviceMemory":8,"userDeviceProcessors":64,"apdex":0.5,"journeyId":"026bc523-d7af-48e6-a51f-28378c03901a","navigationType":0,"readyForUser":1071,"redirectCount":0,"resourceLoadedEnd":696.2000000476837,"resourceLoadedStart":181.39999985694885,"resourceTiming":[{"duration":146,"initiatorType":"link","name":"https://jira.mariadb.org/s/2c21342762a6a02add1c328bed317ffd-CDN/lu2cib/820016/12ta74/0a8bac35585be7fc6c9cc5a0464cd4cf/_/download/contextbatch/css/_super/batch.css","startTime":181.39999985694885,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":181.39999985694885,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":327.39999985694885,"responseStart":0,"secureConnectionStart":0},{"duration":146.09999990463257,"initiatorType":"link","name":"https://jira.mariadb.org/s/7ebd35e77e471bc30ff0eba799ebc151-CDN/lu2cib/820016/12ta74/494e4c556ecbb29f90a3d3b4f09cb99c/_/download/contextbatch/css/jira.browse.project,project.issue.navigator,jira.view.issue,jira.general,jira.global,atl.general,-_super/batch.css?agile_global_admin_condition=true&jag=true&jira.create.linked.issue=true&slack-enabled=true&whisper-enabled=true","startTime":181.70000004768372,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":181.70000004768372,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":327.7999999523163,"responseStart":0,"secureConnectionStart":0},{"duration":315.7000000476837,"initiatorType":"script","name":"https://jira.mariadb.org/s/0917945aaa57108d00c5076fea35e069-CDN/lu2cib/820016/12ta74/0a8bac35585be7fc6c9cc5a0464cd4cf/_/download/contextbatch/js/_super/batch.js?locale=en","startTime":181.79999995231628,"connectEnd":181.79999995231628,"connectStart":181.79999995231628,"domainLookupEnd":181.79999995231628,"domainLookupStart":181.79999995231628,"fetchStart":181.79999995231628,"redirectEnd":0,"redirectStart":0,"requestStart":330.59999990463257,"responseEnd":497.5,"responseStart":350.39999985694885,"secureConnectionStart":181.79999995231628},{"duration":514.2000000476837,"initiatorType":"script","name":"https://jira.mariadb.org/s/2d8175ec2fa4c816e8023260bd8c1786-CDN/lu2cib/820016/12ta74/494e4c556ecbb29f90a3d3b4f09cb99c/_/download/contextbatch/js/jira.browse.project,project.issue.navigator,jira.view.issue,jira.general,jira.global,atl.general,-_super/batch.js?agile_global_admin_condition=true&jag=true&jira.create.linked.issue=true&locale=en&slack-enabled=true&whisper-enabled=true","startTime":182,"connectEnd":182,"connectStart":182,"domainLookupEnd":182,"domainLookupStart":182,"fetchStart":182,"redirectEnd":0,"redirectStart":0,"requestStart":332.5,"responseEnd":696.2000000476837,"responseStart":353.59999990463257,"secureConnectionStart":182},{"duration":173,"initiatorType":"script","name":"https://jira.mariadb.org/s/a9324d6758d385eb45c462685ad88f1d-CDN/lu2cib/820016/12ta74/c92c0caa9a024ae85b0ebdbed7fb4bd7/_/download/contextbatch/js/atl.global,-_super/batch.js?locale=en","startTime":182.20000004768372,"connectEnd":182.20000004768372,"connectStart":182.20000004768372,"domainLookupEnd":182.20000004768372,"domainLookupStart":182.20000004768372,"fetchStart":182.20000004768372,"redirectEnd":0,"redirectStart":0,"requestStart":332.7999999523163,"responseEnd":355.2000000476837,"responseStart":354,"secureConnectionStart":182.20000004768372},{"duration":174.59999990463257,"initiatorType":"script","name":"https://jira.mariadb.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/lu2cib/820016/12ta74/1.0/_/download/batch/jira.webresources:calendar-en/jira.webresources:calendar-en.js","startTime":182.29999995231628,"connectEnd":182.29999995231628,"connectStart":182.29999995231628,"domainLookupEnd":182.29999995231628,"domainLookupStart":182.29999995231628,"fetchStart":182.29999995231628,"redirectEnd":0,"redirectStart":0,"requestStart":333.2000000476837,"responseEnd":356.89999985694885,"responseStart":355.5,"secureConnectionStart":182.29999995231628},{"duration":174.59999990463257,"initiatorType":"script","name":"https://jira.mariadb.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/lu2cib/820016/12ta74/1.0/_/download/batch/jira.webresources:calendar-localisation-moment/jira.webresources:calendar-localisation-moment.js","startTime":182.5,"connectEnd":182.5,"connectStart":182.5,"domainLookupEnd":182.5,"domainLookupStart":182.5,"fetchStart":182.5,"redirectEnd":0,"redirectStart":0,"requestStart":334.5,"responseEnd":357.09999990463257,"responseStart":355.89999985694885,"secureConnectionStart":182.5},{"duration":150.69999980926514,"initiatorType":"link","name":"https://jira.mariadb.org/s/b04b06a02d1959df322d9cded3aeecc1-CDN/lu2cib/820016/12ta74/a2ff6aa845ffc9a1d22fe23d9ee791fc/_/download/contextbatch/css/jira.global.look-and-feel,-_super/batch.css","startTime":182.70000004768372,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":182.70000004768372,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":333.39999985694885,"responseStart":0,"secureConnectionStart":0},{"duration":176.40000009536743,"initiatorType":"script","name":"https://jira.mariadb.org/rest/api/1.0/shortcuts/820016/47140b6e0a9bc2e4913da06536125810/shortcuts.js?context=issuenavigation&context=issueaction","startTime":182.89999985694885,"connectEnd":182.89999985694885,"connectStart":182.89999985694885,"domainLookupEnd":182.89999985694885,"domainLookupStart":182.89999985694885,"fetchStart":182.89999985694885,"redirectEnd":0,"redirectStart":0,"requestStart":336.2999999523163,"responseEnd":359.2999999523163,"responseStart":358.39999985694885,"secureConnectionStart":182.89999985694885},{"duration":151.79999995231628,"initiatorType":"link","name":"https://jira.mariadb.org/s/3ac36323ba5e4eb0af2aa7ac7211b4bb-CDN/lu2cib/820016/12ta74/d176f0986478cc64f24226b3d20c140d/_/download/contextbatch/css/com.atlassian.jira.projects.sidebar.init,-_super,-project.issue.navigator,-jira.view.issue/batch.css?jira.create.linked.issue=true","startTime":183.09999990463257,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":183.09999990463257,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":334.89999985694885,"responseStart":0,"secureConnectionStart":0},{"duration":181.5,"initiatorType":"script","name":"https://jira.mariadb.org/s/5d5e8fe91fbc506585e83ea3b62ccc4b-CDN/lu2cib/820016/12ta74/d176f0986478cc64f24226b3d20c140d/_/download/contextbatch/js/com.atlassian.jira.projects.sidebar.init,-_super,-project.issue.navigator,-jira.view.issue/batch.js?jira.create.linked.issue=true&locale=en","startTime":183.20000004768372,"connectEnd":183.20000004768372,"connectStart":183.20000004768372,"domainLookupEnd":183.20000004768372,"domainLookupStart":183.20000004768372,"fetchStart":183.20000004768372,"redirectEnd":0,"redirectStart":0,"requestStart":338.39999985694885,"responseEnd":364.7000000476837,"responseStart":363,"secureConnectionStart":183.20000004768372},{"duration":350.7999999523163,"initiatorType":"script","name":"https://jira.mariadb.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/lu2cib/820016/12ta74/1.0/_/download/batch/jira.webresources:bigpipe-js/jira.webresources:bigpipe-js.js","startTime":193.09999990463257,"connectEnd":193.09999990463257,"connectStart":193.09999990463257,"domainLookupEnd":193.09999990463257,"domainLookupStart":193.09999990463257,"fetchStart":193.09999990463257,"redirectEnd":0,"redirectStart":0,"requestStart":385.09999990463257,"responseEnd":543.8999998569489,"responseStart":539.2000000476837,"secureConnectionStart":193.09999990463257},{"duration":350.7999999523163,"initiatorType":"script","name":"https://jira.mariadb.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/lu2cib/820016/12ta74/1.0/_/download/batch/jira.webresources:bigpipe-init/jira.webresources:bigpipe-init.js","startTime":194.20000004768372,"connectEnd":194.20000004768372,"connectStart":194.20000004768372,"domainLookupEnd":194.20000004768372,"domainLookupStart":194.20000004768372,"fetchStart":194.20000004768372,"redirectEnd":0,"redirectStart":0,"requestStart":410.89999985694885,"responseEnd":545,"responseStart":541.7999999523163,"secureConnectionStart":194.20000004768372},{"duration":250.70000004768372,"initiatorType":"xmlhttprequest","name":"https://jira.mariadb.org/rest/webResources/1.0/resources","startTime":647.3999998569489,"connectEnd":647.3999998569489,"connectStart":647.3999998569489,"domainLookupEnd":647.3999998569489,"domainLookupStart":647.3999998569489,"fetchStart":647.3999998569489,"redirectEnd":0,"redirectStart":0,"requestStart":862,"responseEnd":898.0999999046326,"responseStart":897.3999998569489,"secureConnectionStart":647.3999998569489}],"fetchStart":0,"domainLookupStart":0,"domainLookupEnd":0,"connectStart":0,"connectEnd":0,"requestStart":4,"responseStart":177,"responseEnd":194,"domLoading":180,"domInteractive":1137,"domContentLoadedEventStart":1137,"domContentLoadedEventEnd":1189,"domComplete":1617,"loadEventStart":1617,"loadEventEnd":1618,"userAgent":"Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)","marks":[{"name":"bigPipe.sidebar-id.start","time":1115},{"name":"bigPipe.sidebar-id.end","time":1115.7999999523163},{"name":"bigPipe.activity-panel-pipe-id.start","time":1116},{"name":"bigPipe.activity-panel-pipe-id.end","time":1117.7000000476837},{"name":"activityTabFullyLoaded","time":1204.5999999046326}],"measures":[],"correlationId":"f0bfa37583cd5a","effectiveType":"4g","downlink":9.2,"rtt":0,"serverDuration":88,"dbReadsTimeInMs":10,"dbConnsTimeInMs":18,"applicationHash":"9d11dbea5f4be3d4cc21f03a88dd11d8c8687422","experiments":[]}}
Sergei, please review fix for this bug.