ERROR: AddressSanitizer: use-after-poison on address 0x7f78f3c90170 at pc 0x000003aad231 bp 0x7f78f3c8f2f0 sp 0x7f78f3c8f2e8
|
READ of size 4 at 0x7f78f3c90170 thread T28
|
#0 0x3aad230 in _db_return_ /home/kevg/work/m/bb-10.3-kevgs/build_asan/../dbug/dbug.c:1176:18
|
#1 0x3a0d57f in my_free /home/kevg/work/m/bb-10.3-kevgs/build_asan/../mysys/my_malloc.c:226:1
|
#2 0x3807c87 in pfs_spawn_thread /home/kevg/work/m/bb-10.3-kevgs/build_asan/../storage/perfschema/pfs.cc:1859:3
|
#3 0x7f7909f33668 in start_thread /build/glibc-4WA41p/glibc-2.30/nptl/pthread_create.c:479:8
|
#4 0x7f79093fc322 in clone /build/glibc-4WA41p/glibc-2.30/misc/../sysdeps/unix/sysv/linux/x86_64/clone.S:95
|
|
Address 0x7f78f3c90170 is a wild pointer.
|
SUMMARY: AddressSanitizer: use-after-poison /home/kevg/work/m/bb-10.3-kevgs/build_asan/../dbug/dbug.c:1176:18 in _db_return_
|
Shadow bytes around the buggy address:
|
0x0fef9e789fd0: f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7
|
0x0fef9e789fe0: f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7
|
0x0fef9e789ff0: f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7
|
0x0fef9e78a000: f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7
|
0x0fef9e78a010: f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7
|
=>0x0fef9e78a020: f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7[f7]f7
|
0x0fef9e78a030: f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7
|
0x0fef9e78a040: f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7
|
0x0fef9e78a050: f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7
|
0x0fef9e78a060: f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7
|
0x0fef9e78a070: f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7
|
Shadow byte legend (one shadow byte represents 8 application bytes):
|
Addressable: 00
|
Partially addressable: 01 02 03 04 05 06 07
|
Heap left redzone: fa
|
Freed heap region: fd
|
Stack left redzone: f1
|
Stack mid redzone: f2
|
Stack right redzone: f3
|
Stack after return: f5
|
Stack use after scope: f8
|
Global redzone: f9
|
Global init order: f6
|
Poisoned by user: f7
|
Container overflow: fc
|
Array cookie: ac
|
Intra object redzone: bb
|
ASan internal: fe
|
Left alloca redzone: ca
|
Right alloca redzone: cb
|
Shadow gap: cc
|
|
This happens when buf_LRU_block_free_non_file_page() calls UNIV_MEM_FREE(block->frame, srv_page_size); after buffer pool was resized. Memory was allocated in os_mem_alloc_large() via shmget(). Then it was freed at buffer pool resize. And that block->frame became a dangling pointer. Sure, program should not touch freed memory. Looks like an ownership + use-after-free error.
This simple patch silences a problem:
diff --git a/storage/innobase/buf/buf0lru.cc b/storage/innobase/buf/buf0lru.cc
|
index cfe3f9a6bcb..17632bf9c9b 100644
|
--- a/storage/innobase/buf/buf0lru.cc
|
+++ b/storage/innobase/buf/buf0lru.cc
|
@@ -1880,7 +1880,9 @@ buf_LRU_block_free_non_file_page(
|
ut_d(block->page.in_free_list = TRUE);
|
}
|
|
- UNIV_MEM_FREE(block->frame, srv_page_size);
|
+ ut_d(if (!block->in_withdraw_list) {
|
+ UNIV_MEM_FREE(block->frame, srv_page_size);
|
+ });
|
}
|
|
/******************************************************************//**
|
|
- relates to
-
MDEV-18851
modernise Linux Large Page support (multiplesizes)
-
-
Closed
{"report":{"fcp":1112.8999996185303,"ttfb":284.3999996185303,"pageVisibility":"visible","entityId":80975,"key":"jira.project.issue.view-issue","isInitial":true,"threshold":1000,"elementTimings":{},"userDeviceMemory":8,"userDeviceProcessors":64,"apdex":0.5,"journeyId":"9acbda25-b9bf-4735-a944-43660bf04a37","navigationType":0,"readyForUser":1203.8999996185303,"redirectCount":0,"resourceLoadedEnd":868.3999996185303,"resourceLoadedStart":290.7999997138977,"resourceTiming":[{"duration":28.40000009536743,"initiatorType":"link","name":"https://jira.mariadb.org/s/2c21342762a6a02add1c328bed317ffd-CDN/lu2cib/820016/12ta74/0a8bac35585be7fc6c9cc5a0464cd4cf/_/download/contextbatch/css/_super/batch.css","startTime":290.7999997138977,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":290.7999997138977,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":319.19999980926514,"responseStart":0,"secureConnectionStart":0},{"duration":28.799999713897705,"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":291.09999990463257,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":291.09999990463257,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":319.8999996185303,"responseStart":0,"secureConnectionStart":0},{"duration":342.19999980926514,"initiatorType":"script","name":"https://jira.mariadb.org/s/0917945aaa57108d00c5076fea35e069-CDN/lu2cib/820016/12ta74/0a8bac35585be7fc6c9cc5a0464cd4cf/_/download/contextbatch/js/_super/batch.js?locale=en","startTime":291.19999980926514,"connectEnd":291.19999980926514,"connectStart":291.19999980926514,"domainLookupEnd":291.19999980926514,"domainLookupStart":291.19999980926514,"fetchStart":291.19999980926514,"redirectEnd":0,"redirectStart":0,"requestStart":339.5,"responseEnd":633.3999996185303,"responseStart":360,"secureConnectionStart":291.19999980926514},{"duration":485.69999980926514,"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":291.5,"connectEnd":291.5,"connectStart":291.5,"domainLookupEnd":291.5,"domainLookupStart":291.5,"fetchStart":291.5,"redirectEnd":0,"redirectStart":0,"requestStart":339.69999980926514,"responseEnd":777.1999998092651,"responseStart":365.09999990463257,"secureConnectionStart":291.5},{"duration":78.90000009536743,"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":291.69999980926514,"connectEnd":291.69999980926514,"connectStart":291.69999980926514,"domainLookupEnd":291.69999980926514,"domainLookupStart":291.69999980926514,"fetchStart":291.69999980926514,"redirectEnd":0,"redirectStart":0,"requestStart":339.7999997138977,"responseEnd":370.59999990463257,"responseStart":367.2999997138977,"secureConnectionStart":291.69999980926514},{"duration":79,"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":291.7999997138977,"connectEnd":291.7999997138977,"connectStart":291.7999997138977,"domainLookupEnd":291.7999997138977,"domainLookupStart":291.7999997138977,"fetchStart":291.7999997138977,"redirectEnd":0,"redirectStart":0,"requestStart":339.8999996185303,"responseEnd":370.7999997138977,"responseStart":368,"secureConnectionStart":291.7999997138977},{"duration":79.19999980926514,"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":292.09999990463257,"connectEnd":292.09999990463257,"connectStart":292.09999990463257,"domainLookupEnd":292.09999990463257,"domainLookupStart":292.09999990463257,"fetchStart":292.09999990463257,"redirectEnd":0,"redirectStart":0,"requestStart":340.09999990463257,"responseEnd":371.2999997138977,"responseStart":368.59999990463257,"secureConnectionStart":292.09999990463257},{"duration":42.19999980926514,"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":292.19999980926514,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":292.19999980926514,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":334.3999996185303,"responseStart":0,"secureConnectionStart":0},{"duration":80.7000002861023,"initiatorType":"script","name":"https://jira.mariadb.org/rest/api/1.0/shortcuts/820016/47140b6e0a9bc2e4913da06536125810/shortcuts.js?context=issuenavigation&context=issueaction","startTime":292.3999996185303,"connectEnd":292.3999996185303,"connectStart":292.3999996185303,"domainLookupEnd":292.3999996185303,"domainLookupStart":292.3999996185303,"fetchStart":292.3999996185303,"redirectEnd":0,"redirectStart":0,"requestStart":340.2999997138977,"responseEnd":373.09999990463257,"responseStart":369.19999980926514,"secureConnectionStart":292.3999996185303},{"duration":43.40000009536743,"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":292.59999990463257,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":292.59999990463257,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":336,"responseStart":0,"secureConnectionStart":0},{"duration":96.2000002861023,"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":292.7999997138977,"connectEnd":292.7999997138977,"connectStart":292.7999997138977,"domainLookupEnd":292.7999997138977,"domainLookupStart":292.7999997138977,"fetchStart":292.7999997138977,"redirectEnd":0,"redirectStart":0,"requestStart":341.69999980926514,"responseEnd":389,"responseStart":373.59999990463257,"secureConnectionStart":292.7999997138977},{"duration":559.9000000953674,"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":308.2999997138977,"connectEnd":308.2999997138977,"connectStart":308.2999997138977,"domainLookupEnd":308.2999997138977,"domainLookupStart":308.2999997138977,"fetchStart":308.2999997138977,"redirectEnd":0,"redirectStart":0,"requestStart":358.5,"responseEnd":868.1999998092651,"responseStart":864.1999998092651,"secureConnectionStart":308.2999997138977},{"duration":557.1999998092651,"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":311.19999980926514,"connectEnd":311.19999980926514,"connectStart":311.19999980926514,"domainLookupEnd":311.19999980926514,"domainLookupStart":311.19999980926514,"fetchStart":311.19999980926514,"redirectEnd":0,"redirectStart":0,"requestStart":367.09999990463257,"responseEnd":868.3999996185303,"responseStart":866,"secureConnectionStart":311.19999980926514},{"duration":149.69999980926514,"initiatorType":"xmlhttprequest","name":"https://jira.mariadb.org/rest/webResources/1.0/resources","startTime":849,"connectEnd":849,"connectStart":849,"domainLookupEnd":849,"domainLookupStart":849,"fetchStart":849,"redirectEnd":0,"redirectStart":0,"requestStart":968.1999998092651,"responseEnd":998.6999998092651,"responseStart":998,"secureConnectionStart":849}],"fetchStart":0,"domainLookupStart":0,"domainLookupEnd":0,"connectStart":0,"connectEnd":0,"requestStart":102,"responseStart":285,"responseEnd":316,"domLoading":289,"domInteractive":1322,"domContentLoadedEventStart":1322,"domContentLoadedEventEnd":1381,"domComplete":1754,"loadEventStart":1754,"loadEventEnd":1755,"userAgent":"Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)","marks":[{"name":"bigPipe.sidebar-id.start","time":1288.1999998092651},{"name":"bigPipe.sidebar-id.end","time":1289.0999999046326},{"name":"bigPipe.activity-panel-pipe-id.start","time":1289.1999998092651},{"name":"bigPipe.activity-panel-pipe-id.end","time":1292.3999996185303},{"name":"activityTabFullyLoaded","time":1398.0999999046326}],"measures":[],"correlationId":"1df58a58d5afc0","effectiveType":"4g","downlink":10,"rtt":0,"serverDuration":98,"dbReadsTimeInMs":13,"dbConnsTimeInMs":22,"applicationHash":"9d11dbea5f4be3d4cc21f03a88dd11d8c8687422","experiments":[]}}
Memory is freed here:
#0 os_mem_free_large (ptr=0x288bc0000001c, size=713428427603996) at os0proc.cc:157
#1 0x0000000002847b95 in ut_allocator<unsigned char, true>::deallocate_large (this=0x61b000003280, ptr=0x7fffdffad000 "\377\377\377\377\377\377\377\377@\031\a\340\377\177", size=9895936) at ut0new.h:681
#2 0x00000000028420a7 in ut_allocator<unsigned char, true>::deallocate_large_dodump (this=0x61b000003280, ptr=0x7fffdffad000 "\377\377\377\377\377\377\377\377@\031\a\340\377\177", size=9895936) at ut0new.h:695
#3 0x00000000027fc6b9 in buf_pool_resize () at buf0buf.cc:2966
#4 0x00000000027f8e32 in buf_resize_thread () at buf0buf.cc:3242
#5 0x00007ffff7f87669 in start_thread (arg=<optimized out>) at pthread_create.c:479
#6 0x00007ffff7450323 in clone () at clone.S:95
Right after that operation some memory blocks are still alive. Their block->frame points to a freed memory. And buf_LRU_block_free_non_file_page() touches this memory here:
UNIV_MEM_ALLOC(block->frame, srv_page_size);
...
memset(block->frame, '\0', srv_page_size);
...
memset(block->frame + FIL_PAGE_OFFSET, 0xfe, 4);
memset(block->frame + FIL_PAGE_ARCH_LOG_NO_OR_SPACE_ID, 0xfe, 4);
...
UNIV_MEM_FREE(block->frame, srv_page_size);
Memory is touched more in debug mode and less in release mode.