Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-41452

AddressSanitizer: heap-use-after-free in list_add / TABLE::hlindex_lock or list_delete / TABLE::unlock_hlindexes

    XMLWordPrintable

Details

    • Bug
    • Status: Open (View Workflow)
    • Major
    • Resolution: Unresolved
    • 11.8, 12.3, 13.1
    • 11.8, 12.3
    • Vector search
    • None

    Description

      The test case is non-deterministic. It already includes the loop, so there should be no need to run it with repeat, but you might need to adjust the number of connections and/or iterations within the test.
      Not for the test suite, for reproducing only!

      --source include/have_sequence.inc
       
      --let $conns= 16
      --let $iters= 3000
       
      --let $restart_parameters= --table-open-cache=10
      --source include/restart_mysqld.inc
       
      CREATE TABLE t1 (
        id INT AUTO_INCREMENT PRIMARY KEY,
        v VECTOR(5) NOT NULL, VECTOR(v)
      ) ENGINE=MyISAM;
      INSERT INTO t1 (v) SELECT 
        VEC_FROMTEXT(CONCAT('[',seq,',',seq,',',seq,',',seq,',',seq,']')) 
        FROM seq_1_to_500;
       
      DELIMITER $$;
      CREATE PROCEDURE p(n INT)
      BEGIN
        DECLARE i INT DEFAULT 0;
        DECLARE x INT;
        WHILE i < n DO
          SELECT id INTO x FROM t1 
          ORDER BY VEC_DISTANCE_EUCLIDEAN(v, VEC_FROMTEXT('[0.1,0.2,0.3,0.4,0.5]'))
          LIMIT 1;
          SET i= i + 1;
        END WHILE;
      END $$
      DELIMITER ;$$
       
      --let $i= $conns
      while ($i)
      {
        --connect (con$i,localhost,root,,test)
        --send_eval CALL p($iters)
        --dec $i
      }
      --let $i= $conns
      while ($i)
      {
        --connection con$i
        --reap
        --disconnect con$i
        --dec $i
      }
      --connection default
       
      DROP PROCEDURE p;
      DROP TABLE t1;
      

      11.8 14362356d14b80242d60dceb9b34f988bbcc9945

      ==121193==ERROR: AddressSanitizer: heap-use-after-free on address 0x61f000060578 at pc 0x55751d661823 bp 0x7f1d37838e80 sp 0x7f1d37838e78
      READ of size 8 at 0x61f000060578 thread T11
          #0 0x55751d661822 in list_add /data/bld/11.8-asan-ubsan/mysys/list.c:33
          #1 0x55751d58e5f3 in mi_lock_database /data/bld/11.8-asan-ubsan/storage/myisam/mi_locking.c:50
          #2 0x55751d4fa526 in ha_myisam::external_lock(THD*, int) /data/bld/11.8-asan-ubsan/storage/myisam/ha_myisam.cc:2215
          #3 0x55751b532026 in handler::ha_external_lock(THD*, int) /data/bld/11.8-asan-ubsan/sql/handler.cc:7865
          #4 0x557519d502c3 in TABLE::hlindex_lock(unsigned int) /data/bld/11.8-asan-ubsan/sql/sql_base.cc:10129
          #5 0x557519d560f5 in TABLE::hlindex_read_first(unsigned int, Item*, unsigned long long) /data/bld/11.8-asan-ubsan/sql/sql_base.cc:10213
          #6 0x55751a3c5169 in join_read_first /data/bld/11.8-asan-ubsan/sql/sql_select.cc:25752
          #7 0x55751a2dbe70 in sub_select(JOIN*, st_join_table*, bool) /data/bld/11.8-asan-ubsan/sql/sql_select.cc:24630
          #8 0x55751a379818 in do_select /data/bld/11.8-asan-ubsan/sql/sql_select.cc:24144
          #9 0x55751a44d5cc in JOIN::exec_inner() /data/bld/11.8-asan-ubsan/sql/sql_select.cc:5112
          #10 0x55751a44db70 in JOIN::exec() /data/bld/11.8-asan-ubsan/sql/sql_select.cc:4900
          #11 0x55751a44454f in mysql_select(THD*, TABLE_LIST*, List<Item>&, Item*, unsigned int, st_order*, st_order*, Item*, st_order*, unsigned long long, select_result*, st_select_lex_unit*, st_select_lex*) /data/bld/11.8-asan-ubsan/sql/sql_select.cc:5426
          #12 0x55751a445697 in handle_select(THD*, LEX*, select_result*, unsigned long long) /data/bld/11.8-asan-ubsan/sql/sql_select.cc:634
          #13 0x55751a0c1329 in execute_sqlcom_select /data/bld/11.8-asan-ubsan/sql/sql_parse.cc:6219
          #14 0x55751a102010 in mysql_execute_command(THD*, bool) /data/bld/11.8-asan-ubsan/sql/sql_parse.cc:4006
          #15 0x55751ad6ebc9 in sp_instr_stmt::exec_core(THD*, unsigned int*) /data/bld/11.8-asan-ubsan/sql/sp_instr.cc:1194
          #16 0x55751ad84292 in sp_lex_keeper::reset_lex_and_exec_core(THD*, unsigned int*, bool, sp_instr*, bool) /data/bld/11.8-asan-ubsan/sql/sp_instr.cc:350
          #17 0x55751ad9186b in sp_lex_keeper::validate_lex_and_exec_core(THD*, unsigned int*, bool, sp_lex_instr*) /data/bld/11.8-asan-ubsan/sql/sp_instr.cc:529
          #18 0x55751ad946c1 in sp_instr_stmt::execute(THD*, unsigned int*) /data/bld/11.8-asan-ubsan/sql/sp_instr.cc:1096
          #19 0x557519c0195b in sp_head::execute(THD*, bool) /data/bld/11.8-asan-ubsan/sql/sp_head.cc:1330
          #20 0x557519c0ac4f in sp_head::execute_procedure(THD*, List<Item>*) /data/bld/11.8-asan-ubsan/sql/sp_head.cc:2356
          #21 0x55751a0bdac3 in do_execute_sp /data/bld/11.8-asan-ubsan/sql/sql_parse.cc:3096
          #22 0x55751a0d648d in Sql_cmd_call::execute(THD*) /data/bld/11.8-asan-ubsan/sql/sql_parse.cc:3337
          #23 0x55751a11b54b in mysql_execute_command(THD*, bool) /data/bld/11.8-asan-ubsan/sql/sql_parse.cc:5911
          #24 0x55751a120058 in mysql_parse(THD*, char*, unsigned int, Parser_state*) /data/bld/11.8-asan-ubsan/sql/sql_parse.cc:7938
          #25 0x55751a12936a in dispatch_command(enum_server_command, THD*, char*, unsigned int, bool) /data/bld/11.8-asan-ubsan/sql/sql_parse.cc:1923
          #26 0x55751a135956 in do_command(THD*, bool) /data/bld/11.8-asan-ubsan/sql/sql_parse.cc:1431
          #27 0x55751a9868d1 in do_handle_one_connection(CONNECT*, bool) /data/bld/11.8-asan-ubsan/sql/sql_connect.cc:1515
          #28 0x55751a987a3a in handle_one_connection /data/bld/11.8-asan-ubsan/sql/sql_connect.cc:1427
          #29 0x55751c421309 in pfs_spawn_thread /data/bld/11.8-asan-ubsan/storage/perfschema/pfs.cc:2198
          #30 0x7f1d486a71f4 in start_thread nptl/pthread_create.c:442
          #31 0x7f1d487278eb in clone3 ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
       
      0x61f000060578 is located 248 bytes inside of 3432-byte region [0x61f000060480,0x61f0000611e8)
      freed by thread T9 here:
          #0 0x7f1d490b76a8 in __interceptor_free ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:52
          #1 0x55751d6cc1ea in my_free /data/bld/11.8-asan-ubsan/mysys/my_malloc.c:218
          #2 0x55751d5540c3 in mi_close /data/bld/11.8-asan-ubsan/storage/myisam/mi_close.c:130
          #3 0x55751d4f5ef7 in ha_myisam::close() /data/bld/11.8-asan-ubsan/storage/myisam/ha_myisam.cc:949
          #4 0x55751b4f359f in handler::ha_close() /data/bld/11.8-asan-ubsan/sql/handler.cc:3867
          #5 0x55751a7b59cf in closefrm(TABLE*) /data/bld/11.8-asan-ubsan/sql/table.cc:4966
          #6 0x55751a7b58b1 in closefrm(TABLE*) /data/bld/11.8-asan-ubsan/sql/table.cc:4963
          #7 0x55751afcf30d in intern_close_table /data/bld/11.8-asan-ubsan/sql/table_cache.cc:230
          #8 0x55751afcf6d9 in tc_remove_table /data/bld/11.8-asan-ubsan/sql/table_cache.cc:268
          #9 0x55751afd024d in tc_release_table(TABLE*) /data/bld/11.8-asan-ubsan/sql/table_cache.cc:461
          #10 0x557519d3673e in close_thread_table(THD*, TABLE**) /data/bld/11.8-asan-ubsan/sql/sql_base.cc:1077
          #11 0x557519d38225 in close_thread_tables(THD*) /data/bld/11.8-asan-ubsan/sql/sql_base.cc:1008
          #12 0x557519d38566 in close_thread_tables_for_query(THD*) /data/bld/11.8-asan-ubsan/sql/sql_base.cc:820
          #13 0x55751a11c89b in mysql_execute_command(THD*, bool) /data/bld/11.8-asan-ubsan/sql/sql_parse.cc:6001
          #14 0x55751ad6ebc9 in sp_instr_stmt::exec_core(THD*, unsigned int*) /data/bld/11.8-asan-ubsan/sql/sp_instr.cc:1194
          #15 0x55751ad84292 in sp_lex_keeper::reset_lex_and_exec_core(THD*, unsigned int*, bool, sp_instr*, bool) /data/bld/11.8-asan-ubsan/sql/sp_instr.cc:350
          #16 0x55751ad9186b in sp_lex_keeper::validate_lex_and_exec_core(THD*, unsigned int*, bool, sp_lex_instr*) /data/bld/11.8-asan-ubsan/sql/sp_instr.cc:529
          #17 0x55751ad946c1 in sp_instr_stmt::execute(THD*, unsigned int*) /data/bld/11.8-asan-ubsan/sql/sp_instr.cc:1096
          #18 0x557519c0195b in sp_head::execute(THD*, bool) /data/bld/11.8-asan-ubsan/sql/sp_head.cc:1330
          #19 0x557519c0ac4f in sp_head::execute_procedure(THD*, List<Item>*) /data/bld/11.8-asan-ubsan/sql/sp_head.cc:2356
          #20 0x55751a0bdac3 in do_execute_sp /data/bld/11.8-asan-ubsan/sql/sql_parse.cc:3096
          #21 0x55751a0d648d in Sql_cmd_call::execute(THD*) /data/bld/11.8-asan-ubsan/sql/sql_parse.cc:3337
          #22 0x55751a11b54b in mysql_execute_command(THD*, bool) /data/bld/11.8-asan-ubsan/sql/sql_parse.cc:5911
          #23 0x55751a120058 in mysql_parse(THD*, char*, unsigned int, Parser_state*) /data/bld/11.8-asan-ubsan/sql/sql_parse.cc:7938
          #24 0x55751a12936a in dispatch_command(enum_server_command, THD*, char*, unsigned int, bool) /data/bld/11.8-asan-ubsan/sql/sql_parse.cc:1923
          #25 0x55751a135956 in do_command(THD*, bool) /data/bld/11.8-asan-ubsan/sql/sql_parse.cc:1431
          #26 0x55751a9868d1 in do_handle_one_connection(CONNECT*, bool) /data/bld/11.8-asan-ubsan/sql/sql_connect.cc:1515
          #27 0x55751a987a3a in handle_one_connection /data/bld/11.8-asan-ubsan/sql/sql_connect.cc:1427
          #28 0x55751c421309 in pfs_spawn_thread /data/bld/11.8-asan-ubsan/storage/perfschema/pfs.cc:2198
          #29 0x7f1d486a71f4 in start_thread nptl/pthread_create.c:442
       
      previously allocated by thread T9 here:
          #0 0x7f1d490b89cf in __interceptor_malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:69
          #1 0x55751d6cba90 in my_malloc /data/bld/11.8-asan-ubsan/mysys/my_malloc.c:93
          #2 0x55751d69e29b in my_multi_malloc /data/bld/11.8-asan-ubsan/mysys/mulalloc.c:59
          #3 0x55751d5a5c07 in mi_open /data/bld/11.8-asan-ubsan/storage/myisam/mi_open.c:621
          #4 0x55751d50f069 in ha_myisam::open(char const*, int, unsigned int) /data/bld/11.8-asan-ubsan/storage/myisam/ha_myisam.cc:813
          #5 0x55751b4f48c7 in handler::ha_open(TABLE*, char const*, int, unsigned int, st_mem_root*, List<String>*) /data/bld/11.8-asan-ubsan/sql/handler.cc:3783
          #6 0x55751a8187a8 in open_table_from_share(THD*, TABLE_SHARE*, st_mysql_const_lex_string const*, unsigned int, unsigned int, unsigned int, TABLE*, bool, List<String>*) /data/bld/11.8-asan-ubsan/sql/table.cc:4777
          #7 0x557519d4f3da in TABLE::hlindex_open(unsigned int) /data/bld/11.8-asan-ubsan/sql/sql_base.cc:10107
          #8 0x557519d560e2 in TABLE::hlindex_read_first(unsigned int, Item*, unsigned long long) /data/bld/11.8-asan-ubsan/sql/sql_base.cc:10213
          #9 0x55751a3c5169 in join_read_first /data/bld/11.8-asan-ubsan/sql/sql_select.cc:25752
          #10 0x55751a2dbe70 in sub_select(JOIN*, st_join_table*, bool) /data/bld/11.8-asan-ubsan/sql/sql_select.cc:24630
          #11 0x55751a379818 in do_select /data/bld/11.8-asan-ubsan/sql/sql_select.cc:24144
          #12 0x55751a44d5cc in JOIN::exec_inner() /data/bld/11.8-asan-ubsan/sql/sql_select.cc:5112
          #13 0x55751a44db70 in JOIN::exec() /data/bld/11.8-asan-ubsan/sql/sql_select.cc:4900
          #14 0x55751a44454f in mysql_select(THD*, TABLE_LIST*, List<Item>&, Item*, unsigned int, st_order*, st_order*, Item*, st_order*, unsigned long long, select_result*, st_select_lex_unit*, st_select_lex*) /data/bld/11.8-asan-ubsan/sql/sql_select.cc:5426
          #15 0x55751a445697 in handle_select(THD*, LEX*, select_result*, unsigned long long) /data/bld/11.8-asan-ubsan/sql/sql_select.cc:634
          #16 0x55751a0c1329 in execute_sqlcom_select /data/bld/11.8-asan-ubsan/sql/sql_parse.cc:6219
          #17 0x55751a102010 in mysql_execute_command(THD*, bool) /data/bld/11.8-asan-ubsan/sql/sql_parse.cc:4006
          #18 0x55751ad6ebc9 in sp_instr_stmt::exec_core(THD*, unsigned int*) /data/bld/11.8-asan-ubsan/sql/sp_instr.cc:1194
          #19 0x55751ad84292 in sp_lex_keeper::reset_lex_and_exec_core(THD*, unsigned int*, bool, sp_instr*, bool) /data/bld/11.8-asan-ubsan/sql/sp_instr.cc:350
          #20 0x55751ad9186b in sp_lex_keeper::validate_lex_and_exec_core(THD*, unsigned int*, bool, sp_lex_instr*) /data/bld/11.8-asan-ubsan/sql/sp_instr.cc:529
          #21 0x55751ad946c1 in sp_instr_stmt::execute(THD*, unsigned int*) /data/bld/11.8-asan-ubsan/sql/sp_instr.cc:1096
          #22 0x557519c0195b in sp_head::execute(THD*, bool) /data/bld/11.8-asan-ubsan/sql/sp_head.cc:1330
          #23 0x557519c0ac4f in sp_head::execute_procedure(THD*, List<Item>*) /data/bld/11.8-asan-ubsan/sql/sp_head.cc:2356
          #24 0x55751a0bdac3 in do_execute_sp /data/bld/11.8-asan-ubsan/sql/sql_parse.cc:3096
          #25 0x55751a0d648d in Sql_cmd_call::execute(THD*) /data/bld/11.8-asan-ubsan/sql/sql_parse.cc:3337
          #26 0x55751a11b54b in mysql_execute_command(THD*, bool) /data/bld/11.8-asan-ubsan/sql/sql_parse.cc:5911
          #27 0x55751a120058 in mysql_parse(THD*, char*, unsigned int, Parser_state*) /data/bld/11.8-asan-ubsan/sql/sql_parse.cc:7938
          #28 0x55751a12936a in dispatch_command(enum_server_command, THD*, char*, unsigned int, bool) /data/bld/11.8-asan-ubsan/sql/sql_parse.cc:1923
          #29 0x55751a135956 in do_command(THD*, bool) /data/bld/11.8-asan-ubsan/sql/sql_parse.cc:1431
       
      Thread T11 created by T0 here:
          #0 0x7f1d49049726 in __interceptor_pthread_create ../../../../src/libsanitizer/asan/asan_interceptors.cpp:207
          #1 0x55751c41d2c5 in my_thread_create /data/bld/11.8-asan-ubsan/storage/perfschema/my_thread.h:38
          #2 0x55751c421786 in pfs_spawn_thread_v1 /data/bld/11.8-asan-ubsan/storage/perfschema/pfs.cc:2249
          #3 0x557519964d16 in inline_mysql_thread_create /data/bld/11.8-asan-ubsan/include/mysql/psi/mysql_thread.h:1139
          #4 0x557519964d16 in create_thread_to_handle_connection(CONNECT*) /data/bld/11.8-asan-ubsan/sql/mysqld.cc:6421
          #5 0x557519978b3f in create_new_thread(CONNECT*) /data/bld/11.8-asan-ubsan/sql/mysqld.cc:6483
          #6 0x557519978d67 in handle_accepted_socket(st_mysql_socket, st_mysql_socket) /data/bld/11.8-asan-ubsan/sql/mysqld.cc:6545
          #7 0x5575199799b9 in handle_connections_sockets() /data/bld/11.8-asan-ubsan/sql/mysqld.cc:6657
          #8 0x557519979e6a in run_main_loop /data/bld/11.8-asan-ubsan/sql/mysqld.cc:5895
          #9 0x55751997b44a in mysqld_main(int, char**) /data/bld/11.8-asan-ubsan/sql/mysqld.cc:6317
          #10 0x55751994ada1 in main /data/bld/11.8-asan-ubsan/sql/main.cc:34
          #11 0x7f1d48645249 in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58
       
      Thread T9 created by T0 here:
          #0 0x7f1d49049726 in __interceptor_pthread_create ../../../../src/libsanitizer/asan/asan_interceptors.cpp:207
          #1 0x55751c41d2c5 in my_thread_create /data/bld/11.8-asan-ubsan/storage/perfschema/my_thread.h:38
          #2 0x55751c421786 in pfs_spawn_thread_v1 /data/bld/11.8-asan-ubsan/storage/perfschema/pfs.cc:2249
          #3 0x557519964d16 in inline_mysql_thread_create /data/bld/11.8-asan-ubsan/include/mysql/psi/mysql_thread.h:1139
          #4 0x557519964d16 in create_thread_to_handle_connection(CONNECT*) /data/bld/11.8-asan-ubsan/sql/mysqld.cc:6421
          #5 0x557519978b3f in create_new_thread(CONNECT*) /data/bld/11.8-asan-ubsan/sql/mysqld.cc:6483
          #6 0x557519978d67 in handle_accepted_socket(st_mysql_socket, st_mysql_socket) /data/bld/11.8-asan-ubsan/sql/mysqld.cc:6545
          #7 0x5575199799b9 in handle_connections_sockets() /data/bld/11.8-asan-ubsan/sql/mysqld.cc:6657
          #8 0x557519979e6a in run_main_loop /data/bld/11.8-asan-ubsan/sql/mysqld.cc:5895
          #9 0x55751997b44a in mysqld_main(int, char**) /data/bld/11.8-asan-ubsan/sql/mysqld.cc:6317
          #10 0x55751994ada1 in main /data/bld/11.8-asan-ubsan/sql/main.cc:34
          #11 0x7f1d48645249 in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58
       
      SUMMARY: AddressSanitizer: heap-use-after-free /data/bld/11.8-asan-ubsan/mysys/list.c:33 in list_add
      Shadow bytes around the buggy address:
        0x0c3e80004050: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
        0x0c3e80004060: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
        0x0c3e80004070: fd fd fa fa fa fa fa fa fa fa fa fa fa fa fa fa
        0x0c3e80004080: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
        0x0c3e80004090: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
      =>0x0c3e800040a0: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd[fd]
        0x0c3e800040b0: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
        0x0c3e800040c0: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
        0x0c3e800040d0: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
        0x0c3e800040e0: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
        0x0c3e800040f0: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
      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
      ==121193==ABORTING
      

      11.8 14362356d14b80242d60dceb9b34f988bbcc9945

      ==120834==ERROR: AddressSanitizer: heap-use-after-free on address 0x61f000050978 at pc 0x55a8623c5ae1 bp 0x7f7d258c0aa0 sp 0x7f7d258c0a98
      WRITE of size 8 at 0x61f000050978 thread T14
          #0 0x55a8623c5ae0 in list_delete /data/bld/11.8-asan-ubsan/mysys/list.c:52
          #1 0x55a8622f29a3 in mi_lock_database /data/bld/11.8-asan-ubsan/storage/myisam/mi_locking.c:147
          #2 0x55a86225e526 in ha_myisam::external_lock(THD*, int) /data/bld/11.8-asan-ubsan/storage/myisam/ha_myisam.cc:2215
          #3 0x55a860296026 in handler::ha_external_lock(THD*, int) /data/bld/11.8-asan-ubsan/sql/handler.cc:7865
          #4 0x55a85eab53a0 in handler::ha_external_unlock(THD*) /data/bld/11.8-asan-ubsan/sql/handler.h:3602
          #5 0x55a85eab53a0 in TABLE::unlock_hlindexes() /data/bld/11.8-asan-ubsan/sql/sql_base.cc:10159
          #6 0x55a860295d55 in handler::ha_external_lock(THD*, int) /data/bld/11.8-asan-ubsan/sql/handler.cc:7859
          #7 0x55a860b678ff in handler::ha_external_unlock(THD*) /data/bld/11.8-asan-ubsan/sql/handler.h:3602
          #8 0x55a860b678ff in unlock_external /data/bld/11.8-asan-ubsan/sql/lock.cc:745
          #9 0x55a860b6a945 in mysql_unlock_tables(THD*, st_mysql_lock*, bool) /data/bld/11.8-asan-ubsan/sql/lock.cc:436
          #10 0x55a860b6bb38 in mysql_unlock_tables(THD*, st_mysql_lock*) /data/bld/11.8-asan-ubsan/sql/lock.cc:419
          #11 0x55a85ea9bbd9 in close_thread_tables(THD*) /data/bld/11.8-asan-ubsan/sql/sql_base.cc:999
          #12 0x55a85ea9c566 in close_thread_tables_for_query(THD*) /data/bld/11.8-asan-ubsan/sql/sql_base.cc:820
          #13 0x55a85ee8089b in mysql_execute_command(THD*, bool) /data/bld/11.8-asan-ubsan/sql/sql_parse.cc:6001
          #14 0x55a85fad2bc9 in sp_instr_stmt::exec_core(THD*, unsigned int*) /data/bld/11.8-asan-ubsan/sql/sp_instr.cc:1194
          #15 0x55a85fae8292 in sp_lex_keeper::reset_lex_and_exec_core(THD*, unsigned int*, bool, sp_instr*, bool) /data/bld/11.8-asan-ubsan/sql/sp_instr.cc:350
          #16 0x55a85faf586b in sp_lex_keeper::validate_lex_and_exec_core(THD*, unsigned int*, bool, sp_lex_instr*) /data/bld/11.8-asan-ubsan/sql/sp_instr.cc:529
          #17 0x55a85faf86c1 in sp_instr_stmt::execute(THD*, unsigned int*) /data/bld/11.8-asan-ubsan/sql/sp_instr.cc:1096
          #18 0x55a85e96595b in sp_head::execute(THD*, bool) /data/bld/11.8-asan-ubsan/sql/sp_head.cc:1330
          #19 0x55a85e96ec4f in sp_head::execute_procedure(THD*, List<Item>*) /data/bld/11.8-asan-ubsan/sql/sp_head.cc:2356
          #20 0x55a85ee21ac3 in do_execute_sp /data/bld/11.8-asan-ubsan/sql/sql_parse.cc:3096
          #21 0x55a85ee3a48d in Sql_cmd_call::execute(THD*) /data/bld/11.8-asan-ubsan/sql/sql_parse.cc:3337
          #22 0x55a85ee7f54b in mysql_execute_command(THD*, bool) /data/bld/11.8-asan-ubsan/sql/sql_parse.cc:5911
          #23 0x55a85ee84058 in mysql_parse(THD*, char*, unsigned int, Parser_state*) /data/bld/11.8-asan-ubsan/sql/sql_parse.cc:7938
          #24 0x55a85ee8d36a in dispatch_command(enum_server_command, THD*, char*, unsigned int, bool) /data/bld/11.8-asan-ubsan/sql/sql_parse.cc:1923
          #25 0x55a85ee99956 in do_command(THD*, bool) /data/bld/11.8-asan-ubsan/sql/sql_parse.cc:1431
          #26 0x55a85f6ea8d1 in do_handle_one_connection(CONNECT*, bool) /data/bld/11.8-asan-ubsan/sql/sql_connect.cc:1515
          #27 0x55a85f6eba3a in handle_one_connection /data/bld/11.8-asan-ubsan/sql/sql_connect.cc:1427
          #28 0x55a861185309 in pfs_spawn_thread /data/bld/11.8-asan-ubsan/storage/perfschema/pfs.cc:2198
          #29 0x7f7d37ca71f4 in start_thread nptl/pthread_create.c:442
          #30 0x7f7d37d278eb in clone3 ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
       
      0x61f000050978 is located 248 bytes inside of 3432-byte region [0x61f000050880,0x61f0000515e8)
      freed by thread T8 here:
          #0 0x7f7d390b76a8 in __interceptor_free ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:52
          #1 0x55a8624301ea in my_free /data/bld/11.8-asan-ubsan/mysys/my_malloc.c:218
          #2 0x55a8622b80c3 in mi_close /data/bld/11.8-asan-ubsan/storage/myisam/mi_close.c:130
          #3 0x55a862259ef7 in ha_myisam::close() /data/bld/11.8-asan-ubsan/storage/myisam/ha_myisam.cc:949
          #4 0x55a86025759f in handler::ha_close() /data/bld/11.8-asan-ubsan/sql/handler.cc:3867
          #5 0x55a85f5199cf in closefrm(TABLE*) /data/bld/11.8-asan-ubsan/sql/table.cc:4966
          #6 0x55a85f5198b1 in closefrm(TABLE*) /data/bld/11.8-asan-ubsan/sql/table.cc:4963
          #7 0x55a85fd3330d in intern_close_table /data/bld/11.8-asan-ubsan/sql/table_cache.cc:230
          #8 0x55a85fd336d9 in tc_remove_table /data/bld/11.8-asan-ubsan/sql/table_cache.cc:268
          #9 0x55a85fd3424d in tc_release_table(TABLE*) /data/bld/11.8-asan-ubsan/sql/table_cache.cc:461
          #10 0x55a85ea9a73e in close_thread_table(THD*, TABLE**) /data/bld/11.8-asan-ubsan/sql/sql_base.cc:1077
          #11 0x55a85ea9c225 in close_thread_tables(THD*) /data/bld/11.8-asan-ubsan/sql/sql_base.cc:1008
          #12 0x55a85ea9c566 in close_thread_tables_for_query(THD*) /data/bld/11.8-asan-ubsan/sql/sql_base.cc:820
          #13 0x55a85ee8089b in mysql_execute_command(THD*, bool) /data/bld/11.8-asan-ubsan/sql/sql_parse.cc:6001
          #14 0x55a85fad2bc9 in sp_instr_stmt::exec_core(THD*, unsigned int*) /data/bld/11.8-asan-ubsan/sql/sp_instr.cc:1194
          #15 0x55a85fae8292 in sp_lex_keeper::reset_lex_and_exec_core(THD*, unsigned int*, bool, sp_instr*, bool) /data/bld/11.8-asan-ubsan/sql/sp_instr.cc:350
          #16 0x55a85faf586b in sp_lex_keeper::validate_lex_and_exec_core(THD*, unsigned int*, bool, sp_lex_instr*) /data/bld/11.8-asan-ubsan/sql/sp_instr.cc:529
          #17 0x55a85faf86c1 in sp_instr_stmt::execute(THD*, unsigned int*) /data/bld/11.8-asan-ubsan/sql/sp_instr.cc:1096
          #18 0x55a85e96595b in sp_head::execute(THD*, bool) /data/bld/11.8-asan-ubsan/sql/sp_head.cc:1330
          #19 0x55a85e96ec4f in sp_head::execute_procedure(THD*, List<Item>*) /data/bld/11.8-asan-ubsan/sql/sp_head.cc:2356
          #20 0x55a85ee21ac3 in do_execute_sp /data/bld/11.8-asan-ubsan/sql/sql_parse.cc:3096
          #21 0x55a85ee3a48d in Sql_cmd_call::execute(THD*) /data/bld/11.8-asan-ubsan/sql/sql_parse.cc:3337
          #22 0x55a85ee7f54b in mysql_execute_command(THD*, bool) /data/bld/11.8-asan-ubsan/sql/sql_parse.cc:5911
          #23 0x55a85ee84058 in mysql_parse(THD*, char*, unsigned int, Parser_state*) /data/bld/11.8-asan-ubsan/sql/sql_parse.cc:7938
          #24 0x55a85ee8d36a in dispatch_command(enum_server_command, THD*, char*, unsigned int, bool) /data/bld/11.8-asan-ubsan/sql/sql_parse.cc:1923
          #25 0x55a85ee99956 in do_command(THD*, bool) /data/bld/11.8-asan-ubsan/sql/sql_parse.cc:1431
          #26 0x55a85f6ea8d1 in do_handle_one_connection(CONNECT*, bool) /data/bld/11.8-asan-ubsan/sql/sql_connect.cc:1515
          #27 0x55a85f6eba3a in handle_one_connection /data/bld/11.8-asan-ubsan/sql/sql_connect.cc:1427
          #28 0x55a861185309 in pfs_spawn_thread /data/bld/11.8-asan-ubsan/storage/perfschema/pfs.cc:2198
          #29 0x7f7d37ca71f4 in start_thread nptl/pthread_create.c:442
       
      previously allocated by thread T12 here:
          #0 0x7f7d390b89cf in __interceptor_malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:69
          #1 0x55a86242fa90 in my_malloc /data/bld/11.8-asan-ubsan/mysys/my_malloc.c:93
          #2 0x55a86240229b in my_multi_malloc /data/bld/11.8-asan-ubsan/mysys/mulalloc.c:59
          #3 0x55a862309c07 in mi_open /data/bld/11.8-asan-ubsan/storage/myisam/mi_open.c:621
          #4 0x55a862273069 in ha_myisam::open(char const*, int, unsigned int) /data/bld/11.8-asan-ubsan/storage/myisam/ha_myisam.cc:813
          #5 0x55a8602588c7 in handler::ha_open(TABLE*, char const*, int, unsigned int, st_mem_root*, List<String>*) /data/bld/11.8-asan-ubsan/sql/handler.cc:3783
          #6 0x55a85f57c7a8 in open_table_from_share(THD*, TABLE_SHARE*, st_mysql_const_lex_string const*, unsigned int, unsigned int, unsigned int, TABLE*, bool, List<String>*) /data/bld/11.8-asan-ubsan/sql/table.cc:4777
          #7 0x55a85eab33da in TABLE::hlindex_open(unsigned int) /data/bld/11.8-asan-ubsan/sql/sql_base.cc:10107
          #8 0x55a85eaba0e2 in TABLE::hlindex_read_first(unsigned int, Item*, unsigned long long) /data/bld/11.8-asan-ubsan/sql/sql_base.cc:10213
          #9 0x55a85f129169 in join_read_first /data/bld/11.8-asan-ubsan/sql/sql_select.cc:25752
          #10 0x55a85f03fe70 in sub_select(JOIN*, st_join_table*, bool) /data/bld/11.8-asan-ubsan/sql/sql_select.cc:24630
          #11 0x55a85f0dd818 in do_select /data/bld/11.8-asan-ubsan/sql/sql_select.cc:24144
          #12 0x55a85f1b15cc in JOIN::exec_inner() /data/bld/11.8-asan-ubsan/sql/sql_select.cc:5112
          #13 0x55a85f1b1b70 in JOIN::exec() /data/bld/11.8-asan-ubsan/sql/sql_select.cc:4900
          #14 0x55a85f1a854f in mysql_select(THD*, TABLE_LIST*, List<Item>&, Item*, unsigned int, st_order*, st_order*, Item*, st_order*, unsigned long long, select_result*, st_select_lex_unit*, st_select_lex*) /data/bld/11.8-asan-ubsan/sql/sql_select.cc:5426
          #15 0x55a85f1a9697 in handle_select(THD*, LEX*, select_result*, unsigned long long) /data/bld/11.8-asan-ubsan/sql/sql_select.cc:634
          #16 0x55a85ee25329 in execute_sqlcom_select /data/bld/11.8-asan-ubsan/sql/sql_parse.cc:6219
          #17 0x55a85ee66010 in mysql_execute_command(THD*, bool) /data/bld/11.8-asan-ubsan/sql/sql_parse.cc:4006
          #18 0x55a85fad2bc9 in sp_instr_stmt::exec_core(THD*, unsigned int*) /data/bld/11.8-asan-ubsan/sql/sp_instr.cc:1194
          #19 0x55a85fae8292 in sp_lex_keeper::reset_lex_and_exec_core(THD*, unsigned int*, bool, sp_instr*, bool) /data/bld/11.8-asan-ubsan/sql/sp_instr.cc:350
          #20 0x55a85faf586b in sp_lex_keeper::validate_lex_and_exec_core(THD*, unsigned int*, bool, sp_lex_instr*) /data/bld/11.8-asan-ubsan/sql/sp_instr.cc:529
          #21 0x55a85faf86c1 in sp_instr_stmt::execute(THD*, unsigned int*) /data/bld/11.8-asan-ubsan/sql/sp_instr.cc:1096
          #22 0x55a85e96595b in sp_head::execute(THD*, bool) /data/bld/11.8-asan-ubsan/sql/sp_head.cc:1330
          #23 0x55a85e96ec4f in sp_head::execute_procedure(THD*, List<Item>*) /data/bld/11.8-asan-ubsan/sql/sp_head.cc:2356
          #24 0x55a85ee21ac3 in do_execute_sp /data/bld/11.8-asan-ubsan/sql/sql_parse.cc:3096
          #25 0x55a85ee3a48d in Sql_cmd_call::execute(THD*) /data/bld/11.8-asan-ubsan/sql/sql_parse.cc:3337
          #26 0x55a85ee7f54b in mysql_execute_command(THD*, bool) /data/bld/11.8-asan-ubsan/sql/sql_parse.cc:5911
          #27 0x55a85ee84058 in mysql_parse(THD*, char*, unsigned int, Parser_state*) /data/bld/11.8-asan-ubsan/sql/sql_parse.cc:7938
          #28 0x55a85ee8d36a in dispatch_command(enum_server_command, THD*, char*, unsigned int, bool) /data/bld/11.8-asan-ubsan/sql/sql_parse.cc:1923
          #29 0x55a85ee99956 in do_command(THD*, bool) /data/bld/11.8-asan-ubsan/sql/sql_parse.cc:1431
       
      Thread T14 created by T0 here:
          #0 0x7f7d39049726 in __interceptor_pthread_create ../../../../src/libsanitizer/asan/asan_interceptors.cpp:207
          #1 0x55a8611812c5 in my_thread_create /data/bld/11.8-asan-ubsan/storage/perfschema/my_thread.h:38
          #2 0x55a861185786 in pfs_spawn_thread_v1 /data/bld/11.8-asan-ubsan/storage/perfschema/pfs.cc:2249
          #3 0x55a85e6c8d16 in inline_mysql_thread_create /data/bld/11.8-asan-ubsan/include/mysql/psi/mysql_thread.h:1139
          #4 0x55a85e6c8d16 in create_thread_to_handle_connection(CONNECT*) /data/bld/11.8-asan-ubsan/sql/mysqld.cc:6421
          #5 0x55a85e6dcb3f in create_new_thread(CONNECT*) /data/bld/11.8-asan-ubsan/sql/mysqld.cc:6483
          #6 0x55a85e6dcd67 in handle_accepted_socket(st_mysql_socket, st_mysql_socket) /data/bld/11.8-asan-ubsan/sql/mysqld.cc:6545
          #7 0x55a85e6dd9b9 in handle_connections_sockets() /data/bld/11.8-asan-ubsan/sql/mysqld.cc:6657
          #8 0x55a85e6dde6a in run_main_loop /data/bld/11.8-asan-ubsan/sql/mysqld.cc:5895
          #9 0x55a85e6df44a in mysqld_main(int, char**) /data/bld/11.8-asan-ubsan/sql/mysqld.cc:6317
          #10 0x55a85e6aeda1 in main /data/bld/11.8-asan-ubsan/sql/main.cc:34
          #11 0x7f7d37c45249 in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58
       
      Thread T8 created by T0 here:
          #0 0x7f7d39049726 in __interceptor_pthread_create ../../../../src/libsanitizer/asan/asan_interceptors.cpp:207
          #1 0x55a8611812c5 in my_thread_create /data/bld/11.8-asan-ubsan/storage/perfschema/my_thread.h:38
          #2 0x55a861185786 in pfs_spawn_thread_v1 /data/bld/11.8-asan-ubsan/storage/perfschema/pfs.cc:2249
          #3 0x55a85e6c8d16 in inline_mysql_thread_create /data/bld/11.8-asan-ubsan/include/mysql/psi/mysql_thread.h:1139
          #4 0x55a85e6c8d16 in create_thread_to_handle_connection(CONNECT*) /data/bld/11.8-asan-ubsan/sql/mysqld.cc:6421
          #5 0x55a85e6dcb3f in create_new_thread(CONNECT*) /data/bld/11.8-asan-ubsan/sql/mysqld.cc:6483
          #6 0x55a85e6dcd67 in handle_accepted_socket(st_mysql_socket, st_mysql_socket) /data/bld/11.8-asan-ubsan/sql/mysqld.cc:6545
          #7 0x55a85e6dd9b9 in handle_connections_sockets() /data/bld/11.8-asan-ubsan/sql/mysqld.cc:6657
          #8 0x55a85e6dde6a in run_main_loop /data/bld/11.8-asan-ubsan/sql/mysqld.cc:5895
          #9 0x55a85e6df44a in mysqld_main(int, char**) /data/bld/11.8-asan-ubsan/sql/mysqld.cc:6317
          #10 0x55a85e6aeda1 in main /data/bld/11.8-asan-ubsan/sql/main.cc:34
          #11 0x7f7d37c45249 in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58
       
      Thread T12 created by T0 here:
          #0 0x7f7d39049726 in __interceptor_pthread_create ../../../../src/libsanitizer/asan/asan_interceptors.cpp:207
          #1 0x55a8611812c5 in my_thread_create /data/bld/11.8-asan-ubsan/storage/perfschema/my_thread.h:38
          #2 0x55a861185786 in pfs_spawn_thread_v1 /data/bld/11.8-asan-ubsan/storage/perfschema/pfs.cc:2249
          #3 0x55a85e6c8d16 in inline_mysql_thread_create /data/bld/11.8-asan-ubsan/include/mysql/psi/mysql_thread.h:1139
          #4 0x55a85e6c8d16 in create_thread_to_handle_connection(CONNECT*) /data/bld/11.8-asan-ubsan/sql/mysqld.cc:6421
          #5 0x55a85e6dcb3f in create_new_thread(CONNECT*) /data/bld/11.8-asan-ubsan/sql/mysqld.cc:6483
          #6 0x55a85e6dcd67 in handle_accepted_socket(st_mysql_socket, st_mysql_socket) /data/bld/11.8-asan-ubsan/sql/mysqld.cc:6545
          #7 0x55a85e6dd9b9 in handle_connections_sockets() /data/bld/11.8-asan-ubsan/sql/mysqld.cc:6657
          #8 0x55a85e6dde6a in run_main_loop /data/bld/11.8-asan-ubsan/sql/mysqld.cc:5895
          #9 0x55a85e6df44a in mysqld_main(int, char**) /data/bld/11.8-asan-ubsan/sql/mysqld.cc:6317
          #10 0x55a85e6aeda1 in main /data/bld/11.8-asan-ubsan/sql/main.cc:34
          #11 0x7f7d37c45249 in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58
       
      SUMMARY: AddressSanitizer: heap-use-after-free /data/bld/11.8-asan-ubsan/mysys/list.c:52 in list_delete
      Shadow bytes around the buggy address:
        0x0c3e800020d0: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
        0x0c3e800020e0: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
        0x0c3e800020f0: fd fd fa fa fa fa fa fa fa fa fa fa fa fa fa fa
        0x0c3e80002100: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
        0x0c3e80002110: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
      =>0x0c3e80002120: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd[fd]
        0x0c3e80002130: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
        0x0c3e80002140: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
        0x0c3e80002150: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
        0x0c3e80002160: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
        0x0c3e80002170: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
      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
      ==120834==ABORTING
      

      Claude's comment, I have no claims about its validity:

      The MyISAM table backing a vector index is opened from a share with
      tmp_table=INTERNAL_TMP_TABLE, so ha_myisam locks it with F_EXTRA_LCK, which
      does list_add() on MYISAM_SHARE::in_use without intern_lock. But the file is
      opened without HA_OPEN_INTERNAL_TABLE, so all connections share one
      MYISAM_SHARE. Concurrent searches corrupt share->in_use; a tiny table cache
      evicts single TABLE objects (freeing their MI_INFO) while the share survives.

      Attachments

        Activity

          People

            serg Sergei Golubchik
            elenst Elena Stepanova
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:

              Git Integration

                Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.