Type:
Bug
Priority:
Blocker
Resolution:
Fixed
Affects Version/s:
10.2(EOL) , 10.3(EOL) , 10.4(EOL) , 10.5 , 10.6
row event execution starts from Rows_log_event::do_apply_event which calls open_and_lock_tables() which calls lock_tables() , which does
if (!(ptr=start=(TABLE**) thd->alloc( sizeof (TABLE*)*count)))
thus allocating an array of points of the thd's memroot. This is just few bytes, 8 in the test below. But this memory is never freed, not by row events at least. So, by creating a transaction with a huge number of row events we can consume any amount of memory.
source include/have_innodb.inc;
source include/have_binlog_format_row.inc;
source include/master-slave.inc;
create table t1 (a int ) engine=innodb;
insert t1 values (1);
sync_slave_with_master;
stop slave;
set global max_session_mem_used=10*1024*1024;
start slave;
connection master;
let $a=1000000;
start transaction ;
disable_query_log;
while ($a) {
update t1 set a=a+1;
dec $a;
}
enable_query_log;
commit ;
drop table t1;
sync_slave_with_master;
set global max_session_mem_used= default ;
source include/rpl_end.inc;
To fix that, rbr events must do
free_root(thd->mem_root, MYF(MY_KEEP_PREALLOC));
somewhere. Where it's safe, because it'll destroy anything allocated on the thd memroot.
This patch appears to be working fine, it frees thd memroot after closing all opened tables:
--- a/sql/rpl_rli.cc
+++ b/sql/rpl_rli.cc
@@ -2326,6 +2326,7 @@ void rpl_group_info::cleanup_context(THD *thd, bool error)
*/
reset_row_stmt_start_timestamp();
unset_long_find_row_note_printed();
+ free_root(thd->mem_root, MYF(MY_KEEP_PREALLOC));
DBUG_EXECUTE_IF( "inject_sleep_gtid_100_x_x" , {
if (current_gtid.domain_id == 100)
{"report":{"fcp":864.6999999880791,"ttfb":207.09999999403954,"pageVisibility":"visible","entityId":103413,"key":"jira.project.issue.view-issue","isInitial":true,"threshold":1000,"elementTimings":{},"userDeviceMemory":8,"userDeviceProcessors":64,"apdex":1,"journeyId":"73c23505-2569-462b-8597-68daac8a566f","navigationType":0,"readyForUser":949,"redirectCount":0,"resourceLoadedEnd":785.5999999940395,"resourceLoadedStart":213.19999998807907,"resourceTiming":[{"duration":141.5,"initiatorType":"link","name":"https://jira.mariadb.org/s/2c21342762a6a02add1c328bed317ffd-CDN/lu2bv2/820016/12ta74/0a8bac35585be7fc6c9cc5a0464cd4cf/_/download/contextbatch/css/_super/batch.css","startTime":213.19999998807907,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":213.19999998807907,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":354.69999998807907,"responseStart":0,"secureConnectionStart":0},{"duration":141.40000000596046,"initiatorType":"link","name":"https://jira.mariadb.org/s/7ebd35e77e471bc30ff0eba799ebc151-CDN/lu2bv2/820016/12ta74/2380add21a9a1006587582385952de73/_/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":213.5,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":213.5,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":354.90000000596046,"responseStart":0,"secureConnectionStart":0},{"duration":167.09999999403954,"initiatorType":"script","name":"https://jira.mariadb.org/s/e9b27a47da5fb0f74a35acd57e9847fb-CDN/lu2bv2/820016/12ta74/0a8bac35585be7fc6c9cc5a0464cd4cf/_/download/contextbatch/js/_super/batch.js?locale=en","startTime":213.59999999403954,"connectEnd":213.59999999403954,"connectStart":213.59999999403954,"domainLookupEnd":213.59999999403954,"domainLookupStart":213.59999999403954,"fetchStart":213.59999999403954,"redirectEnd":0,"redirectStart":0,"requestStart":213.59999999403954,"responseEnd":380.69999998807907,"responseStart":380.69999998807907,"secureConnectionStart":213.59999999403954},{"duration":248.69999998807907,"initiatorType":"script","name":"https://jira.mariadb.org/s/c32eb0da7ad9831253f8397e6cc26afd-CDN/lu2bv2/820016/12ta74/2380add21a9a1006587582385952de73/_/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":213.80000001192093,"connectEnd":213.80000001192093,"connectStart":213.80000001192093,"domainLookupEnd":213.80000001192093,"domainLookupStart":213.80000001192093,"fetchStart":213.80000001192093,"redirectEnd":0,"redirectStart":0,"requestStart":213.80000001192093,"responseEnd":462.5,"responseStart":462.5,"secureConnectionStart":213.80000001192093},{"duration":251.80000001192093,"initiatorType":"script","name":"https://jira.mariadb.org/s/bc0bcb146314416123c992714ee00ff7-CDN/lu2bv2/820016/12ta74/c92c0caa9a024ae85b0ebdbed7fb4bd7/_/download/contextbatch/js/atl.global,-_super/batch.js?locale=en","startTime":214.09999999403954,"connectEnd":214.09999999403954,"connectStart":214.09999999403954,"domainLookupEnd":214.09999999403954,"domainLookupStart":214.09999999403954,"fetchStart":214.09999999403954,"redirectEnd":0,"redirectStart":0,"requestStart":214.09999999403954,"responseEnd":465.90000000596046,"responseStart":465.90000000596046,"secureConnectionStart":214.09999999403954},{"duration":252.90000000596046,"initiatorType":"script","name":"https://jira.mariadb.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/lu2bv2/820016/12ta74/1.0/_/download/batch/jira.webresources:calendar-en/jira.webresources:calendar-en.js","startTime":214.19999998807907,"connectEnd":214.19999998807907,"connectStart":214.19999998807907,"domainLookupEnd":214.19999998807907,"domainLookupStart":214.19999998807907,"fetchStart":214.19999998807907,"redirectEnd":0,"redirectStart":0,"requestStart":214.19999998807907,"responseEnd":467.09999999403954,"responseStart":467.09999999403954,"secureConnectionStart":214.19999998807907},{"duration":253.80000001192093,"initiatorType":"script","name":"https://jira.mariadb.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/lu2bv2/820016/12ta74/1.0/_/download/batch/jira.webresources:calendar-localisation-moment/jira.webresources:calendar-localisation-moment.js","startTime":214.5,"connectEnd":214.5,"connectStart":214.5,"domainLookupEnd":214.5,"domainLookupStart":214.5,"fetchStart":214.5,"redirectEnd":0,"redirectStart":0,"requestStart":214.5,"responseEnd":468.30000001192093,"responseStart":468.30000001192093,"secureConnectionStart":214.5},{"duration":306.80000001192093,"initiatorType":"link","name":"https://jira.mariadb.org/s/b04b06a02d1959df322d9cded3aeecc1-CDN/lu2bv2/820016/12ta74/a2ff6aa845ffc9a1d22fe23d9ee791fc/_/download/contextbatch/css/jira.global.look-and-feel,-_super/batch.css","startTime":214.59999999403954,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":214.59999999403954,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":521.4000000059605,"responseStart":0,"secureConnectionStart":0},{"duration":254.69999998807907,"initiatorType":"script","name":"https://jira.mariadb.org/rest/api/1.0/shortcuts/820016/47140b6e0a9bc2e4913da06536125810/shortcuts.js?context=issuenavigation&context=issueaction","startTime":214.80000001192093,"connectEnd":214.80000001192093,"connectStart":214.80000001192093,"domainLookupEnd":214.80000001192093,"domainLookupStart":214.80000001192093,"fetchStart":214.80000001192093,"redirectEnd":0,"redirectStart":0,"requestStart":214.80000001192093,"responseEnd":469.5,"responseStart":469.5,"secureConnectionStart":214.80000001192093},{"duration":306.5,"initiatorType":"link","name":"https://jira.mariadb.org/s/3ac36323ba5e4eb0af2aa7ac7211b4bb-CDN/lu2bv2/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":215,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":215,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":521.5,"responseStart":0,"secureConnectionStart":0},{"duration":255.60000002384186,"initiatorType":"script","name":"https://jira.mariadb.org/s/719848dd97ebe0663199f49a3936487a-CDN/lu2bv2/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":215.19999998807907,"connectEnd":215.19999998807907,"connectStart":215.19999998807907,"domainLookupEnd":215.19999998807907,"domainLookupStart":215.19999998807907,"fetchStart":215.19999998807907,"redirectEnd":0,"redirectStart":0,"requestStart":215.19999998807907,"responseEnd":470.80000001192093,"responseStart":470.80000001192093,"secureConnectionStart":215.19999998807907},{"duration":357.7000000178814,"initiatorType":"script","name":"https://jira.mariadb.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/lu2bv2/820016/12ta74/1.0/_/download/batch/jira.webresources:bigpipe-js/jira.webresources:bigpipe-js.js","startTime":216.09999999403954,"connectEnd":216.09999999403954,"connectStart":216.09999999403954,"domainLookupEnd":216.09999999403954,"domainLookupStart":216.09999999403954,"fetchStart":216.09999999403954,"redirectEnd":0,"redirectStart":0,"requestStart":216.09999999403954,"responseEnd":573.8000000119209,"responseStart":573.6999999880791,"secureConnectionStart":216.09999999403954},{"duration":420,"initiatorType":"script","name":"https://jira.mariadb.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/lu2bv2/820016/12ta74/1.0/_/download/batch/jira.webresources:bigpipe-init/jira.webresources:bigpipe-init.js","startTime":220.40000000596046,"connectEnd":220.40000000596046,"connectStart":220.40000000596046,"domainLookupEnd":220.40000000596046,"domainLookupStart":220.40000000596046,"fetchStart":220.40000000596046,"redirectEnd":0,"redirectStart":0,"requestStart":220.40000000596046,"responseEnd":640.4000000059605,"responseStart":640.4000000059605,"secureConnectionStart":220.40000000596046},{"duration":41.900000005960464,"initiatorType":"xmlhttprequest","name":"https://jira.mariadb.org/rest/webResources/1.0/resources","startTime":532.5,"connectEnd":532.5,"connectStart":532.5,"domainLookupEnd":532.5,"domainLookupStart":532.5,"fetchStart":532.5,"redirectEnd":0,"redirectStart":0,"requestStart":532.5,"responseEnd":574.4000000059605,"responseStart":574.4000000059605,"secureConnectionStart":532.5},{"duration":207.7000000178814,"initiatorType":"link","name":"https://jira.mariadb.org/s/d5715adaadd168a9002b108b2b039b50-CDN/lu2bv2/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":577.6999999880791,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":577.6999999880791,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":785.4000000059605,"responseStart":0,"secureConnectionStart":0},{"duration":207.40000000596046,"initiatorType":"link","name":"https://jira.mariadb.org/s/50bc9be5bfead1a25e72c1a9338c94f6-CDN/lu2bv2/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":578.1999999880791,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":578.1999999880791,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":785.5999999940395,"responseStart":0,"secureConnectionStart":0}],"fetchStart":0,"domainLookupStart":0,"domainLookupEnd":0,"connectStart":0,"connectEnd":0,"requestStart":17,"responseStart":207,"responseEnd":214,"domLoading":211,"domInteractive":1009,"domContentLoadedEventStart":1009,"domContentLoadedEventEnd":1056,"domComplete":1225,"loadEventStart":1225,"loadEventEnd":1226,"userAgent":"Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)","marks":[{"name":"bigPipe.sidebar-id.start","time":988.0999999940395},{"name":"bigPipe.sidebar-id.end","time":989},{"name":"bigPipe.activity-panel-pipe-id.start","time":989.0999999940395},{"name":"bigPipe.activity-panel-pipe-id.end","time":990.5},{"name":"activityTabFullyLoaded","time":1072.800000011921}],"measures":[],"correlationId":"c1c56860fed699","effectiveType":"4g","downlink":9.2,"rtt":0,"serverDuration":122,"dbReadsTimeInMs":29,"dbConnsTimeInMs":39,"applicationHash":"9d11dbea5f4be3d4cc21f03a88dd11d8c8687422","experiments":[]}}