Details
-
Bug
-
Status: Open (View Workflow)
-
Critical
-
Resolution: Unresolved
-
11.8, 12.2, 12.3
Description
CREATE TABLE t (c INT KEY) PARTITION BY KEY() PARTITIONS 3; |
ALTER TABLE t RENAME t2; |
SET @@max_statement_time=0.1; |
CREATE TABLE t (c INT KEY) ENGINE=InnoDB; |
DELETE FROM t WHERE c NOT IN (SELECT * FROM t2 WHERE c<>10) AND c<20; |
SHUTDOWN;
|
Leads to:
|
CS 12.3.0 549628d9ccb822252b55210d922cef3d13eecd71 (Optimized, UBASAN, Clang 21.1.3-20250923) Build 02/02/2026 |
==4168659==ERROR: LeakSanitizer: detected memory leaks
|
|
|
Direct leak of 352 byte(s) in 1 object(s) allocated from:
|
#0 0x5b7873704831 in operator new(unsigned long) (/test/UBASAN_MD020226-mariadb-12.3.0-linux-x86_64-opt/bin/mariadbd+0x3082831) (BuildId: 5881185709f4000abf9059c6976d3cff5f82b7f1)
|
#1 0x5b7873f7d62d in get_quick_select(PARAM*, unsigned int, SEL_ARG*, unsigned int, unsigned int, st_mem_root*) /test/12.3_opt_san/sql/opt_range.cc:12701:11
|
#2 0x5b7873ff0724 in TRP_RANGE::make_quick(PARAM*, bool, st_mem_root*) /test/12.3_opt_san/sql/opt_range.cc:2316:17
|
#3 0x5b7873f3f2a6 in SQL_SELECT::test_quick_select(THD*, Bitmap<64u>, unsigned long long, unsigned long long, bool, bool, bool, bool, Item_func::Bitmap) /test/12.3_opt_san/sql/opt_range.cc:3205:34
|
#4 0x5b78745aceab in SQL_SELECT::check_quick(THD*, bool, unsigned long long, Item_func::Bitmap) /test/12.3_opt_san/sql/opt_range.h:1945:12
|
#5 0x5b78745aceab in Sql_cmd_delete::delete_from_single_table(THD*) /test/12.3_opt_san/sql/sql_delete.cc:625:26
|
#6 0x5b78745c6dfd in Sql_cmd_delete::execute_inner(THD*) /test/12.3_opt_san/sql/sql_delete.cc:2174:28
|
#7 0x5b7874a8572f in Sql_cmd_dml::execute(THD*) /test/12.3_opt_san/sql/sql_select.cc:34843:9
|
#8 0x5b78747697fd in mysql_execute_command(THD*, bool) /test/12.3_opt_san/sql/sql_parse.cc:4422:27
|
#9 0x5b787474c825 in mysql_parse(THD*, char*, unsigned int, Parser_state*) /test/12.3_opt_san/sql/sql_parse.cc:7945:18
|
#10 0x5b787474496c in dispatch_command(enum_server_command, THD*, char*, unsigned int, bool) /test/12.3_opt_san/sql/sql_parse.cc:1896:7
|
#11 0x5b787474e780 in do_command(THD*, bool) /test/12.3_opt_san/sql/sql_parse.cc:1432:17
|
#12 0x5b7874f8d56c in do_handle_one_connection(CONNECT*, bool) /test/12.3_opt_san/sql/sql_connect.cc:1503:11
|
#13 0x5b7874f8d086 in handle_one_connection /test/12.3_opt_san/sql/sql_connect.cc:1415:5
|
#14 0x5b78736bdf2a in asan_thread_start(void*) crtstuff.c
|
|
|
Indirect leak of 4088 byte(s) in 1 object(s) allocated from:
|
#0 0x5b78736c06a8 in malloc (/test/UBASAN_MD020226-mariadb-12.3.0-linux-x86_64-opt/bin/mariadbd+0x303e6a8) (BuildId: 5881185709f4000abf9059c6976d3cff5f82b7f1)
|
#1 0x5b7876750e15 in my_malloc /test/12.3_opt_san/mysys/my_malloc.c:93:29
|
#2 0x5b787671f6ea in alloc_root /test/12.3_opt_san/mysys/my_alloc.c:336:29
|
#3 0x5b7873f2df10 in QUICK_RANGE* Query_arena::alloc<QUICK_RANGE>(unsigned long) const /test/12.3_opt_san/sql/sql_class.h:1343:16
|
#4 0x5b7873f2df10 in QUICK_RANGE_SELECT::QUICK_RANGE_SELECT(THD*, TABLE*, unsigned int, bool, st_mem_root*, bool*) /test/12.3_opt_san/sql/opt_range.cc:1309:3
|
#5 0x5b7873f7d709 in get_quick_select(PARAM*, unsigned int, SEL_ARG*, unsigned int, unsigned int, st_mem_root*) /test/12.3_opt_san/sql/opt_range.cc:12701:15
|
#6 0x5b7873ff0724 in TRP_RANGE::make_quick(PARAM*, bool, st_mem_root*) /test/12.3_opt_san/sql/opt_range.cc:2316:17
|
#7 0x5b7873f3f2a6 in SQL_SELECT::test_quick_select(THD*, Bitmap<64u>, unsigned long long, unsigned long long, bool, bool, bool, bool, Item_func::Bitmap) /test/12.3_opt_san/sql/opt_range.cc:3205:34
|
#8 0x5b78745aceab in SQL_SELECT::check_quick(THD*, bool, unsigned long long, Item_func::Bitmap) /test/12.3_opt_san/sql/opt_range.h:1945:12
|
#9 0x5b78745aceab in Sql_cmd_delete::delete_from_single_table(THD*) /test/12.3_opt_san/sql/sql_delete.cc:625:26
|
#10 0x5b78745c6dfd in Sql_cmd_delete::execute_inner(THD*) /test/12.3_opt_san/sql/sql_delete.cc:2174:28
|
#11 0x5b7874a8572f in Sql_cmd_dml::execute(THD*) /test/12.3_opt_san/sql/sql_select.cc:34843:9
|
#12 0x5b78747697fd in mysql_execute_command(THD*, bool) /test/12.3_opt_san/sql/sql_parse.cc:4422:27
|
#13 0x5b787474c825 in mysql_parse(THD*, char*, unsigned int, Parser_state*) /test/12.3_opt_san/sql/sql_parse.cc:7945:18
|
#14 0x5b787474496c in dispatch_command(enum_server_command, THD*, char*, unsigned int, bool) /test/12.3_opt_san/sql/sql_parse.cc:1896:7
|
#15 0x5b787474e780 in do_command(THD*, bool) /test/12.3_opt_san/sql/sql_parse.cc:1432:17
|
#16 0x5b7874f8d56c in do_handle_one_connection(CONNECT*, bool) /test/12.3_opt_san/sql/sql_connect.cc:1503:11
|
#17 0x5b7874f8d086 in handle_one_connection /test/12.3_opt_san/sql/sql_connect.cc:1415:5
|
#18 0x5b78736bdf2a in asan_thread_start(void*) crtstuff.c
|
|
|
SUMMARY: AddressSanitizer: 4440 byte(s) leaked in 2 allocation(s).
|
Setup:
Compiled with a recent version of Clang and LLVM. Ubuntu instructions for Clang/LLVM 18:
|
# Note: It is strongly recommended to uninstall all old Clang & LLVM packages (ref dpkg --list | grep -iE 'clang|llvm' and use apt purge and dpkg --purge to remove the packages), before installing Clang/LLVM 18
|
sudo apt install clang llvm-18 llvm-18-linker-tools llvm-18-runtime llvm-18-tools llvm-18-dev libstdc++-14-dev llvm-dev lld-18
|
Compiled with: "-DCMAKE_C_COMPILER=/usr/bin/clang -DCMAKE_CXX_COMPILER=/usr/bin/clang++ -DCMAKE_C{,XX}_FLAGS='-march=native -mtune=native'" and:
|
-DWITH_ASAN=ON -DWITH_ASAN_SCOPE=ON -DWITH_UBSAN=ON -DWSREP_LIB_WITH_ASAN=ON
|
Set before execution:
|
export UBSAN_OPTIONS=print_stacktrace=1:report_error_type=1 # And you may also want to supress UBSAN startup issues using 'suppressions=UBSAN.filter' in UBSAN_OPTIONS. For an example of UBSAN.filter, which includes current startup issues see: https://github.com/mariadb-corporation/mariadb-qa/blob/master/UBSAN.filter
|
export ASAN_OPTIONS=quarantine_size_mb=512:atexit=0:detect_invalid_pointer_pairs=3:dump_instruction_bytes=1:abort_on_error=1:allocator_may_return_null=1
|
|
SAN Bug Detection Matrix |
Rel o/d Build Commit UniqueID observed
|
CS 10.6 dbg 230126 cd02709a315c9f08965d6b8fb7e75baaae17a4f4 No bug found
|
CS 10.6 opt 230126 cd02709a315c9f08965d6b8fb7e75baaae17a4f4 No bug found
|
CS 10.11 dbg 230126 b061b5ab1f2cd2a6993e53dc24a865304ced14cd No bug found
|
CS 10.11 opt 230126 b061b5ab1f2cd2a6993e53dc24a865304ced14cd No bug found
|
CS 11.4 dbg 260126 b6d0e23d76fe5936b6a29379ab494852e4d493b1 No bug found
|
CS 11.4 opt 260126 b6d0e23d76fe5936b6a29379ab494852e4d493b1 No bug found
|
CS 11.8 dbg 230126 01ff5ae6b677bead4c41d91bf5afb25c593a1d02 No bug found
|
CS 11.8 opt 230126 01ff5ae6b677bead4c41d91bf5afb25c593a1d02 LSAN|memory leak|sql/opt_range.cc|operator|get_quick_select|TRP_RANGE::make_quick|SQL_SELECT::test_quick_select
|
CS 12.2 dbg 230126 6ca70dd64ce56da40fad3bcd0641493210dd0a4c No bug found
|
CS 12.2 opt 230126 6ca70dd64ce56da40fad3bcd0641493210dd0a4c LSAN|memory leak|sql/opt_range.cc|operator|get_quick_select|TRP_RANGE::make_quick|SQL_SELECT::test_quick_select
|
CS 12.3 dbg 020226 549628d9ccb822252b55210d922cef3d13eecd71 No bug found
|
CS 12.3 opt 020226 549628d9ccb822252b55210d922cef3d13eecd71 LSAN|memory leak|sql/opt_range.cc|operator|get_quick_select|TRP_RANGE::make_quick|SQL_SELECT::test_quick_select
|
ES 10.6 dbg 260126 0fe345fff3a0463224ca714831303d40fb83648b No bug found
|
ES 10.6 opt 230126 0fe345fff3a0463224ca714831303d40fb83648b No bug found
|
ES 11.4 dbg 260126 34f616d5fd2c649d0c79acb4e2423c90b8f10436 No bug found
|
ES 11.4 opt 260126 34f616d5fd2c649d0c79acb4e2423c90b8f10436 No bug found
|
ES 11.8 dbg 230126 405ee76b60c4ab82155f339136ed20d3b7363717 No bug found
|
ES 11.8 opt 230126 405ee76b60c4ab82155f339136ed20d3b7363717 LSAN|memory leak|sql/opt_range.cc|operator|get_quick_select|TRP_RANGE::make_quick|SQL_SELECT::test_quick_select
|
Note the observations are on release/optimized builds not debug builds. Non-sporadic though the 0.1 max stmt time may make it lightly so.
Attachments
Issue Links
- relates to
-
MDEV-29016 Memory leak in get_quick_select / TRP_RANGE::make_quick after INSERT .. RETURNING
-
- Closed
-