We enable "read_only=1" part of shutdown process for MariaDB Server but it's being blocked by backup lock.
mysql [localhost:10504] {msandbox} (test) > create table emp (id int, name varchar(50), hiredate date, primary key(id));
|
Query OK, 0 rows affected (0.015 sec)
|
mysql [localhost:10504] {msandbox} (test) > create table emp_view (id int, name varchar(50), hiredate date, primary key(id));
|
Query OK, 0 rows affected (0.007 sec)
|
mysql [localhost:10504] {msandbox} (test) > insert into emp values(1, 'Muhammad', CURDATE());
|
Query OK, 1 row affected (0.005 sec)
|
mysql [localhost:10504] {msandbox} (test) >
|
mysql [localhost:10504] {msandbox} (test) > delimiter //
|
mysql [localhost:10504] {msandbox} (test) > create procedure update_emp_report()
|
-> BEGIN
|
-> TRUNCATE TABLE `emp_view`;
|
-> INSERT INTO `emp_view` SELECT * FROM emp;
|
-> END
|
-> //
|
Query OK, 0 rows affected (0.003 sec)
|
mysql [localhost:10504] {msandbox} (test) > delimiter ;
|
mysql [localhost:10504] {msandbox} (test) >
|
mysql [localhost:10504] {msandbox} (test) > CREATE EVENT `update_emp_report_every_2_minutes` ON SCHEDULE EVERY 2 MINUTE STARTS '2020-10-01 00:00:00' ON COMPLETION NOT PRESERVE ENABLE DO CALL update_emp_report();
|
Query OK, 0 rows affected, 1 warning (0.001 sec)
|
|
mysql [localhost:10504] {msandbox} (test) > show tables;
|
+----------------+
|
| Tables_in_test |
|
+----------------+
|
| emp |
|
| emp_view |
|
+----------------+
|
2 rows in set (0.000 sec)
|
mysql [localhost:10504] {msandbox} ((none)) > select * from information_schema.metadata_lock_info\G
|
*************************** 1. row ***************************
|
THREAD_ID: 4
|
LOCK_MODE: MDL_BACKUP_SYS_DML
|
LOCK_DURATION: NULL
|
LOCK_TYPE: Backup lock
|
TABLE_SCHEMA:
|
TABLE_NAME:
|
*************************** 2. row ***************************
|
THREAD_ID: 4
|
LOCK_MODE: MDL_SHARED_WRITE
|
LOCK_DURATION: NULL
|
LOCK_TYPE: Table metadata lock
|
TABLE_SCHEMA: mysql
|
TABLE_NAME: event
|
2 rows in set (0.000 sec)
|
mysql [localhost:10504] {msandbox} ((none)) > SELECT * FROM performance_schema.metadata_locks\G
|
*************************** 1. row ***************************
|
OBJECT_TYPE: TABLE
|
OBJECT_SCHEMA: mysql
|
OBJECT_NAME: event
|
OBJECT_INSTANCE_BEGIN: 139879098948320
|
LOCK_TYPE: SHARED_WRITE
|
LOCK_DURATION: TRANSACTION
|
LOCK_STATUS: GRANTED
|
SOURCE:
|
OWNER_THREAD_ID: 28
|
OWNER_EVENT_ID: 1
|
*************************** 2. row ***************************
|
OBJECT_TYPE: BACKUP
|
OBJECT_SCHEMA: NULL
|
OBJECT_NAME: NULL
|
OBJECT_INSTANCE_BEGIN: 139879098948400
|
LOCK_TYPE: BACKUP_SYS_DML
|
LOCK_DURATION: STATEMENT
|
LOCK_STATUS: GRANTED
|
SOURCE:
|
OWNER_THREAD_ID: 28
|
OWNER_EVENT_ID: 1
|
*************************** 3. row ***************************
|
OBJECT_TYPE: TABLE
|
OBJECT_SCHEMA: performance_schema
|
OBJECT_NAME: metadata_locks
|
OBJECT_INSTANCE_BEGIN: 139878900194512
|
LOCK_TYPE: SHARED_READ
|
LOCK_DURATION: TRANSACTION
|
LOCK_STATUS: GRANTED
|
SOURCE:
|
OWNER_THREAD_ID: 29
|
OWNER_EVENT_ID: 1
|
3 rows in set (0.000 sec)
|
mysql [localhost:10504] {msandbox} ((none)) > SELECT OBJECT_TYPE, OBJECT_SCHEMA, OBJECT_NAME, LOCK_TYPE, LOCK_STATUS, THREAD_ID, PROCESSLIST_ID, PROCESSLIST_INFO FROM performance_schema.metadata_locks INNER JOIN performance_schema.threads ON THREAD_ID = OWNER_THREAD_ID WHERE PROCESSLIST_ID <> CONNECTION_ID()\G
|
*************************** 1. row ***************************
|
OBJECT_TYPE: TABLE
|
OBJECT_SCHEMA: mysql
|
OBJECT_NAME: event
|
LOCK_TYPE: SHARED_WRITE
|
LOCK_STATUS: GRANTED
|
THREAD_ID: 28
|
PROCESSLIST_ID: 4
|
PROCESSLIST_INFO: NULL
|
*************************** 2. row ***************************
|
OBJECT_TYPE: BACKUP
|
OBJECT_SCHEMA: NULL
|
OBJECT_NAME: NULL
|
LOCK_TYPE: BACKUP_SYS_DML
|
LOCK_STATUS: GRANTED
|
THREAD_ID: 28
|
PROCESSLIST_ID: 4
|
PROCESSLIST_INFO: NULL
|
2 rows in set (0.000 sec)
|
mysql [localhost:10504] {msandbox} ((none)) > SET GLOBAL read_only = ON;
|
<hanged>
|
mysql [localhost:10504] {msandbox} ((none)) > show full processlist\G
|
*************************** 1. row ***************************
|
Id: 4
|
User: event_scheduler
|
Host: localhost
|
db: NULL
|
Command: Daemon
|
Time: 3835
|
State: Waiting for next activation
|
Info: NULL
|
Progress: 0.000
|
*************************** 2. row ***************************
|
Id: 37
|
User: msandbox
|
Host: localhost
|
db: NULL
|
Command: Query
|
Time: 18
|
State: Waiting for backup lock
|
Info: SET GLOBAL read_only = ON
|
Progress: 0.000
|
*************************** 3. row ***************************
|
Id: 39
|
User: msandbox
|
Host: localhost
|
db: NULL
|
Command: Query
|
Time: 0
|
State: starting
|
Info: show full processlist
|
Progress: 0.000
|
3 rows in set (0.000 sec)
|
"Backup lock" was acquired during the event execution so it should be released once event execution completes.
I didn't notice backup lock issue with earlier version at least I tested on 10.3
- relates to
-
MDEV-24552
ALTER causes discrepancy in FK information between server and engine, unexpected ER_CANNOT_ADD_FOREIGN
-
-
Open
{"report":{"fcp":2234.800000190735,"ttfb":885.7000002861023,"pageVisibility":"visible","entityId":92343,"key":"jira.project.issue.view-issue","isInitial":true,"threshold":1000,"elementTimings":{},"userDeviceMemory":8,"userDeviceProcessors":64,"apdex":0.5,"journeyId":"9c07279c-cf09-440c-b704-6e39fc97b30f","navigationType":0,"readyForUser":2349.7000002861023,"redirectCount":0,"resourceLoadedEnd":3259.7000002861023,"resourceLoadedStart":891.8000001907349,"resourceTiming":[{"duration":762.0999999046326,"initiatorType":"link","name":"https://jira.mariadb.org/s/2c21342762a6a02add1c328bed317ffd-CDN/lu2cib/820016/12ta74/0a8bac35585be7fc6c9cc5a0464cd4cf/_/download/contextbatch/css/_super/batch.css","startTime":891.8000001907349,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":891.8000001907349,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":1653.9000000953674,"responseStart":0,"secureConnectionStart":0},{"duration":762.2000002861023,"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":892.0999999046326,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":892.0999999046326,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":1654.3000001907349,"responseStart":0,"secureConnectionStart":0},{"duration":771.3999996185303,"initiatorType":"script","name":"https://jira.mariadb.org/s/0917945aaa57108d00c5076fea35e069-CDN/lu2cib/820016/12ta74/0a8bac35585be7fc6c9cc5a0464cd4cf/_/download/contextbatch/js/_super/batch.js?locale=en","startTime":892.2000002861023,"connectEnd":892.2000002861023,"connectStart":892.2000002861023,"domainLookupEnd":892.2000002861023,"domainLookupStart":892.2000002861023,"fetchStart":892.2000002861023,"redirectEnd":0,"redirectStart":0,"requestStart":892.2000002861023,"responseEnd":1663.5999999046326,"responseStart":1663.5999999046326,"secureConnectionStart":892.2000002861023},{"duration":810.9000000953674,"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":892.4000000953674,"connectEnd":892.4000000953674,"connectStart":892.4000000953674,"domainLookupEnd":892.4000000953674,"domainLookupStart":892.4000000953674,"fetchStart":892.4000000953674,"redirectEnd":0,"redirectStart":0,"requestStart":892.4000000953674,"responseEnd":1703.3000001907349,"responseStart":1703.3000001907349,"secureConnectionStart":892.4000000953674},{"duration":814.5,"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":892.7000002861023,"connectEnd":892.7000002861023,"connectStart":892.7000002861023,"domainLookupEnd":892.7000002861023,"domainLookupStart":892.7000002861023,"fetchStart":892.7000002861023,"redirectEnd":0,"redirectStart":0,"requestStart":892.7000002861023,"responseEnd":1707.2000002861023,"responseStart":1707.2000002861023,"secureConnectionStart":892.7000002861023},{"duration":814.9000000953674,"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":892.8000001907349,"connectEnd":892.8000001907349,"connectStart":892.8000001907349,"domainLookupEnd":892.8000001907349,"domainLookupStart":892.8000001907349,"fetchStart":892.8000001907349,"redirectEnd":0,"redirectStart":0,"requestStart":892.8000001907349,"responseEnd":1707.7000002861023,"responseStart":1707.7000002861023,"secureConnectionStart":892.8000001907349},{"duration":815.4000000953674,"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":893,"connectEnd":893,"connectStart":893,"domainLookupEnd":893,"domainLookupStart":893,"fetchStart":893,"redirectEnd":0,"redirectStart":0,"requestStart":893,"responseEnd":1708.4000000953674,"responseStart":1708.4000000953674,"secureConnectionStart":893},{"duration":922,"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":893.2000002861023,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":893.2000002861023,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":1815.2000002861023,"responseStart":0,"secureConnectionStart":0},{"duration":815.5999999046326,"initiatorType":"script","name":"https://jira.mariadb.org/rest/api/1.0/shortcuts/820016/47140b6e0a9bc2e4913da06536125810/shortcuts.js?context=issuenavigation&context=issueaction","startTime":893.3000001907349,"connectEnd":893.3000001907349,"connectStart":893.3000001907349,"domainLookupEnd":893.3000001907349,"domainLookupStart":893.3000001907349,"fetchStart":893.3000001907349,"redirectEnd":0,"redirectStart":0,"requestStart":893.3000001907349,"responseEnd":1708.9000000953674,"responseStart":1708.9000000953674,"secureConnectionStart":893.3000001907349},{"duration":921.8000001907349,"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":893.5,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":893.5,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":1815.3000001907349,"responseStart":0,"secureConnectionStart":0},{"duration":815.9000000953674,"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":893.5999999046326,"connectEnd":893.5999999046326,"connectStart":893.5999999046326,"domainLookupEnd":893.5999999046326,"domainLookupStart":893.5999999046326,"fetchStart":893.5999999046326,"redirectEnd":0,"redirectStart":0,"requestStart":893.5999999046326,"responseEnd":1709.5,"responseStart":1709.5,"secureConnectionStart":893.5999999046326},{"duration":2014.7000002861023,"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":899.5,"connectEnd":899.5,"connectStart":899.5,"domainLookupEnd":899.5,"domainLookupStart":899.5,"fetchStart":899.5,"redirectEnd":0,"redirectStart":0,"requestStart":899.5,"responseEnd":2914.2000002861023,"responseStart":2914.2000002861023,"secureConnectionStart":899.5},{"duration":2360.2000002861023,"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":899.5,"connectEnd":899.5,"connectStart":899.5,"domainLookupEnd":899.5,"domainLookupStart":899.5,"fetchStart":899.5,"redirectEnd":0,"redirectStart":0,"requestStart":899.5,"responseEnd":3259.7000002861023,"responseStart":3259.7000002861023,"secureConnectionStart":899.5},{"duration":1076,"initiatorType":"xmlhttprequest","name":"https://jira.mariadb.org/rest/webResources/1.0/resources","startTime":1839,"connectEnd":1839,"connectStart":1839,"domainLookupEnd":1839,"domainLookupStart":1839,"fetchStart":1839,"redirectEnd":0,"redirectStart":0,"requestStart":1839,"responseEnd":2915,"responseStart":2915,"secureConnectionStart":1839},{"duration":1036.1000003814697,"initiatorType":"script","name":"https://www.google-analytics.com/analytics.js","startTime":2228.0999999046326,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":2228.0999999046326,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":3264.2000002861023,"responseStart":0,"secureConnectionStart":0}],"fetchStart":0,"domainLookupStart":0,"domainLookupEnd":0,"connectStart":0,"connectEnd":0,"requestStart":698,"responseStart":886,"responseEnd":895,"domLoading":889,"domInteractive":3293,"domContentLoadedEventStart":3293,"domContentLoadedEventEnd":3366,"domComplete":4412,"loadEventStart":4412,"loadEventEnd":4413,"userAgent":"Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)","marks":[{"name":"bigPipe.sidebar-id.start","time":3265.5},{"name":"bigPipe.sidebar-id.end","time":3266.4000000953674},{"name":"bigPipe.activity-panel-pipe-id.start","time":3266.5999999046326},{"name":"bigPipe.activity-panel-pipe-id.end","time":3268.7000002861023},{"name":"activityTabFullyLoaded","time":3399.5999999046326}],"measures":[],"correlationId":"e58158e9f32c37","effectiveType":"4g","downlink":9.2,"rtt":0,"serverDuration":106,"dbReadsTimeInMs":11,"dbConnsTimeInMs":19,"applicationHash":"9d11dbea5f4be3d4cc21f03a88dd11d8c8687422","experiments":[]}}
Below is an MTR-friendly version of the exactly the same test case as in the description, only without the STARTS clause, to speed up the first execution of the event.
--delimiter //
BEGIN
--delimiter ;
--sleep 1
The result seems to be reliably reproducible for me on 10.5:
10.5 9028cc6b
Variable_name Value
Executed_events 1
THREAD_ID LOCK_MODE LOCK_DURATION LOCK_TYPE TABLE_SCHEMA TABLE_NAME
It couldn't have happened on 10.3 MariaDB community server, as it doesn't have backup locks, but indeed, it's not reproducible on 10.4 either, only on 10.5.