Affects/is observed on 821808c45dd
Transaction that update,insert,delete a distinctive single record specified with a PK value
should not have any gap lock. E.g such one as call foo1(); where the table and procedure
are defined as follows
CREATE TABLE `t2_text` (
|
`a` int(11) NOT NULL,
|
`b` int(11) DEFAULT NULL,
|
`c` text DEFAULT NULL,
|
PRIMARY KEY (`a`)
|
) ENGINE=InnoDB
|
|
|
create procedure foo1()
|
begin
|
declare av int;
|
declare ni int;
|
declare mk int;
|
declare u0,u1,d int;
|
declare skip_max int;
|
|
set av = ceil(rand()*100);
|
set ni = ceil(rand()*10);
|
set skip_max = 2;
|
set d = av + mod(ceil(rand()*100), skip_max*ni);
|
set u0 = av + mod(ceil(rand()*100), skip_max*ni);
|
set u1 = av + mod(ceil(rand()*100), skip_max*ni);
|
|
while (ni > 0) do
|
set mk = mod(ceil(rand()*100),4);
|
replace into t2_text values (av, av, repeat('a', mk*1024));
|
set ni = ni - 1;
|
set av = av + 1 + mod(ceil(rand()*100), skip_max);
|
end while;
|
delete from t2_text where a = d;
|
update t2_text set a=u1,b=u1 where a = u0;
|
end|
|
delimiter ;
|
However a X lock on Supremum record appears when the above `call foo1()` runs concurrently, like
--connection one
|
--send \
|
select sleep(0.1);xa start '1'; call foo1(); xa end '1'; xa prepare '1'; select sleep(0.05); xa commit '1'; select sleep(0.1);
|
|
--connection two
|
--send \
|
select sleep(0.1);xa start '2'; call foo1(); xa end '2'; xa prepare '2'; select sleep(0.05); xa commit '2'; select sleep(0.1);
|
|
so an assert, see the diff file attached, fires after few repeats.
It also survives MDEV-26682 commit's action to clear the user XA out of gap locks.
The latter, as it was in MDEV-26682 context, may have as a consequence seemingly non-conflicting XA transactions to become actually conflicting.
when they replayed on slave.
The attached diff suggests how to fix this though its idea is merely to work around xa replication issues, and not possible
isolation ones (when the presence of X on supremum indeed 'unexpected' and can't be justified).
(Edited to remove unnecessary Unique constraint from `b`)
{"report":{"fcp":1105.2000000476837,"ttfb":214.80000019073486,"pageVisibility":"visible","entityId":111443,"key":"jira.project.issue.view-issue","isInitial":true,"threshold":1000,"elementTimings":{},"userDeviceMemory":8,"userDeviceProcessors":64,"apdex":0.5,"journeyId":"3294924f-1e24-44fb-96d4-6448d67cfc53","navigationType":0,"readyForUser":1202.8000001907349,"redirectCount":0,"resourceLoadedEnd":858,"resourceLoadedStart":222.90000009536743,"resourceTiming":[{"duration":328.5,"initiatorType":"link","name":"https://jira.mariadb.org/s/2c21342762a6a02add1c328bed317ffd-CDN/lu2bsh/820016/12ta74/0a8bac35585be7fc6c9cc5a0464cd4cf/_/download/contextbatch/css/_super/batch.css","startTime":222.90000009536743,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":222.90000009536743,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":551.4000000953674,"responseStart":0,"secureConnectionStart":0},{"duration":328.19999980926514,"initiatorType":"link","name":"https://jira.mariadb.org/s/7ebd35e77e471bc30ff0eba799ebc151-CDN/lu2bsh/820016/12ta74/eb142f92e4bd16bd1ef8b08c1b9d5d56/_/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","startTime":223.30000019073486,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":223.30000019073486,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":551.5,"responseStart":0,"secureConnectionStart":0},{"duration":336.90000009536743,"initiatorType":"script","name":"https://jira.mariadb.org/s/b09d0d077992e4331b5f9ec0d3ec448c-CDN/lu2bsh/820016/12ta74/0a8bac35585be7fc6c9cc5a0464cd4cf/_/download/contextbatch/js/_super/batch.js?locale=en","startTime":223.5,"connectEnd":223.5,"connectStart":223.5,"domainLookupEnd":223.5,"domainLookupStart":223.5,"fetchStart":223.5,"redirectEnd":0,"redirectStart":0,"requestStart":223.5,"responseEnd":560.4000000953674,"responseStart":560.4000000953674,"secureConnectionStart":223.5},{"duration":537.5999999046326,"initiatorType":"script","name":"https://jira.mariadb.org/s/b47ab3df14096803b180217eb8482517-CDN/lu2bsh/820016/12ta74/eb142f92e4bd16bd1ef8b08c1b9d5d56/_/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","startTime":223.80000019073486,"connectEnd":223.80000019073486,"connectStart":223.80000019073486,"domainLookupEnd":223.80000019073486,"domainLookupStart":223.80000019073486,"fetchStart":223.80000019073486,"redirectEnd":0,"redirectStart":0,"requestStart":223.80000019073486,"responseEnd":761.4000000953674,"responseStart":761.4000000953674,"secureConnectionStart":223.80000019073486},{"duration":541.0999999046326,"initiatorType":"script","name":"https://jira.mariadb.org/s/6c569cbf8087ab04e40d0bef98627457-CDN/lu2bsh/820016/12ta74/c92c0caa9a024ae85b0ebdbed7fb4bd7/_/download/contextbatch/js/atl.global,-_super/batch.js?locale=en","startTime":223.90000009536743,"connectEnd":223.90000009536743,"connectStart":223.90000009536743,"domainLookupEnd":223.90000009536743,"domainLookupStart":223.90000009536743,"fetchStart":223.90000009536743,"redirectEnd":0,"redirectStart":0,"requestStart":223.90000009536743,"responseEnd":765,"responseStart":765,"secureConnectionStart":223.90000009536743},{"duration":541.6000001430511,"initiatorType":"script","name":"https://jira.mariadb.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/lu2bsh/820016/12ta74/1.0/_/download/batch/jira.webresources:calendar-en/jira.webresources:calendar-en.js","startTime":224,"connectEnd":224,"connectStart":224,"domainLookupEnd":224,"domainLookupStart":224,"fetchStart":224,"redirectEnd":0,"redirectStart":0,"requestStart":224,"responseEnd":765.6000001430511,"responseStart":765.6000001430511,"secureConnectionStart":224},{"duration":542,"initiatorType":"script","name":"https://jira.mariadb.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/lu2bsh/820016/12ta74/1.0/_/download/batch/jira.webresources:calendar-localisation-moment/jira.webresources:calendar-localisation-moment.js","startTime":224.10000014305115,"connectEnd":224.10000014305115,"connectStart":224.10000014305115,"domainLookupEnd":224.10000014305115,"domainLookupStart":224.10000014305115,"fetchStart":224.10000014305115,"redirectEnd":0,"redirectStart":0,"requestStart":224.10000014305115,"responseEnd":766.1000001430511,"responseStart":766,"secureConnectionStart":224.10000014305115},{"duration":542.4000000953674,"initiatorType":"link","name":"https://jira.mariadb.org/s/b04b06a02d1959df322d9cded3aeecc1-CDN/lu2bsh/820016/12ta74/a2ff6aa845ffc9a1d22fe23d9ee791fc/_/download/contextbatch/css/jira.global.look-and-feel,-_super/batch.css","startTime":224.20000004768372,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":224.20000004768372,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":766.6000001430511,"responseStart":0,"secureConnectionStart":0},{"duration":542.2999999523163,"initiatorType":"script","name":"https://jira.mariadb.org/rest/api/1.0/shortcuts/820016/47140b6e0a9bc2e4913da06536125810/shortcuts.js?context=issuenavigation&context=issueaction","startTime":224.30000019073486,"connectEnd":224.30000019073486,"connectStart":224.30000019073486,"domainLookupEnd":224.30000019073486,"domainLookupStart":224.30000019073486,"fetchStart":224.30000019073486,"redirectEnd":0,"redirectStart":0,"requestStart":224.30000019073486,"responseEnd":766.6000001430511,"responseStart":766.6000001430511,"secureConnectionStart":224.30000019073486},{"duration":542.7000000476837,"initiatorType":"link","name":"https://jira.mariadb.org/s/3ac36323ba5e4eb0af2aa7ac7211b4bb-CDN/lu2bsh/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":224.40000009536743,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":224.40000009536743,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":767.1000001430511,"responseStart":0,"secureConnectionStart":0},{"duration":542.7000000476837,"initiatorType":"script","name":"https://jira.mariadb.org/s/81b5d7c27af3ebc078cc4a36383678ba-CDN/lu2bsh/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":224.5,"connectEnd":224.5,"connectStart":224.5,"domainLookupEnd":224.5,"domainLookupStart":224.5,"fetchStart":224.5,"redirectEnd":0,"redirectStart":0,"requestStart":224.5,"responseEnd":767.2000000476837,"responseStart":767.2000000476837,"secureConnectionStart":224.5},{"duration":591.7000000476837,"initiatorType":"script","name":"https://jira.mariadb.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/lu2bsh/820016/12ta74/1.0/_/download/batch/jira.webresources:bigpipe-js/jira.webresources:bigpipe-js.js","startTime":246.40000009536743,"connectEnd":246.40000009536743,"connectStart":246.40000009536743,"domainLookupEnd":246.40000009536743,"domainLookupStart":246.40000009536743,"fetchStart":246.40000009536743,"redirectEnd":0,"redirectStart":0,"requestStart":246.40000009536743,"responseEnd":838.1000001430511,"responseStart":838.1000001430511,"secureConnectionStart":246.40000009536743},{"duration":604.1999998092651,"initiatorType":"script","name":"https://jira.mariadb.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/lu2bsh/820016/12ta74/1.0/_/download/batch/jira.webresources:bigpipe-init/jira.webresources:bigpipe-init.js","startTime":253.30000019073486,"connectEnd":253.30000019073486,"connectStart":253.30000019073486,"domainLookupEnd":253.30000019073486,"domainLookupStart":253.30000019073486,"fetchStart":253.30000019073486,"redirectEnd":0,"redirectStart":0,"requestStart":253.30000019073486,"responseEnd":857.5,"responseStart":857.5,"secureConnectionStart":253.30000019073486},{"duration":103.40000009536743,"initiatorType":"xmlhttprequest","name":"https://jira.mariadb.org/rest/webResources/1.0/resources","startTime":706.9000000953674,"connectEnd":706.9000000953674,"connectStart":706.9000000953674,"domainLookupEnd":706.9000000953674,"domainLookupStart":706.9000000953674,"fetchStart":706.9000000953674,"redirectEnd":0,"redirectStart":0,"requestStart":706.9000000953674,"responseEnd":810.3000001907349,"responseStart":810.3000001907349,"secureConnectionStart":706.9000000953674},{"duration":27.399999856948853,"initiatorType":"link","name":"https://jira.mariadb.org/s/d5715adaadd168a9002b108b2b039b50-CDN/lu2bsh/820016/12ta74/be4b45e9cec53099498fa61c8b7acba4/_/download/contextbatch/css/jira.project.sidebar,-_super,-project.issue.navigator,-jira.general,-jira.browse.project,-jira.view.issue,-jira.global,-atl.general,-com.atlassian.jira.projects.sidebar.init/batch.css?agile_global_admin_condition=true&jag=true&jira.create.linked.issue=true&slack-enabled=true","startTime":830.6000001430511,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":830.6000001430511,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":858,"responseStart":0,"secureConnectionStart":0},{"duration":27,"initiatorType":"link","name":"https://jira.mariadb.org/s/50bc9be5bfead1a25e72c1a9338c94f6-CDN/lu2bsh/820016/12ta74/e108c7645258ccb43280ed3404e3e949/_/download/contextbatch/css/com.atlassian.jira.plugins.jira-development-integration-plugin:0,-_super,-jira.view.issue,-jira.global,-jira.general,-jira.browse.project,-project.issue.navigator,-atl.general/batch.css?agile_global_admin_condition=true&jag=true&jira.create.linked.issue=true&slack-enabled=true","startTime":831,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":831,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":858,"responseStart":0,"secureConnectionStart":0}],"fetchStart":0,"domainLookupStart":0,"domainLookupEnd":0,"connectStart":0,"connectEnd":0,"requestStart":6,"responseStart":215,"responseEnd":253,"domLoading":218,"domInteractive":1267,"domContentLoadedEventStart":1267,"domContentLoadedEventEnd":1319,"domComplete":1797,"loadEventStart":1797,"loadEventEnd":1798,"userAgent":"Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)","marks":[{"name":"bigPipe.sidebar-id.start","time":1247.8000001907349},{"name":"bigPipe.sidebar-id.end","time":1248.5},{"name":"bigPipe.activity-panel-pipe-id.start","time":1248.7000000476837},{"name":"bigPipe.activity-panel-pipe-id.end","time":1249.9000000953674},{"name":"activityTabFullyLoaded","time":1334.5}],"measures":[],"correlationId":"bfef32b42d319f","effectiveType":"4g","downlink":9.6,"rtt":0,"serverDuration":138,"dbReadsTimeInMs":62,"dbConnsTimeInMs":74,"applicationHash":"9d11dbea5f4be3d4cc21f03a88dd11d8c8687422","experiments":[]}}