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

memory leak in innodb.insert_into_empty test

    XMLWordPrintable

Details

    Description

      Failures on ASAN buidler started in 10.10 after

      commit bf3b787e02c
      Author: Thirunarayanan Balathandayuthapani <thiru@mariadb.com>
      Date:   Fri Aug 25 17:25:47 2023 +0530
       
          MDEV-31835  Remove unnecessary extra HA_EXTRA_IGNORE_INSERT call
          
          - This commit is different from 10.6 commit c438284863db2ccba8a04437c941a5c8a2d9225b.
          Due to Commit 045757af4c301757ba449269351cc27b1691a7d6 (MDEV-24621),
          InnoDB does buffer and pre-sort the records for each index, and build
          the indexes one page at a time.
          
          Multiple large insert ignore statment aborts the server during bulk
          insert operation. Problem is that InnoDB merge record exceeds
          the page size. To avoid this scenario, InnoDB should catch
          too big record while buffering the insert operation itself.
          
          row_merge_buf_encode(): returns length of the encoded index record
          
          row_merge_buf_write(): Catches the DB_TOO_BIG_RECORD earlier and
          returns error
      

      Leaks looks like

      =================================================================
      ==7568==ERROR: LeakSanitizer: detected memory leaks
       
      Direct leak of 136 byte(s) in 1 object(s) allocated from:
          #0 0x7fef5a112b98 in operator new(unsigned long) (/usr/lib/gcc/x86_64-pc-linux-gnu/12/libasan.so.8+0xbdb98)
          #1 0x55adbdd789d1 in trx_mod_table_time_t::start_bulk_insert(dict_table_t*) /home/serg/Abk/maria/storage/innobase/include/trx0trx.h:481
          #2 0x55adbdd741ef in trx_undo_report_row_operation(que_thr_t*, dict_index_t*, dtuple_t const*, upd_t const*, unsigned long, unsigned char const*, unsigned short const*, unsigned long*) /home/serg/Abk/maria/storage/innobase/trx/trx0rec.cc:1868
          #3 0x55adbdbf272b in row_ins_clust_index_entry_low(unsigned long, btr_latch_mode, dict_index_t*, unsigned long, dtuple_t*, unsigned long, que_thr_t*) /home/serg/Abk/maria/storage/innobase/row/row0ins.cc:2772
          #4 0x55adbdbf531e in row_ins_clust_index_entry(dict_index_t*, dtuple_t*, que_thr_t*, unsigned long) /home/serg/Abk/maria/storage/innobase/row/row0ins.cc:3243
          #5 0x55adbdbf5e34 in row_ins_index_entry /home/serg/Abk/maria/storage/innobase/row/row0ins.cc:3375
          #6 0x55adbdbf7040 in row_ins_index_entry_step /home/serg/Abk/maria/storage/innobase/row/row0ins.cc:3543
          #7 0x55adbdbf7ac9 in row_ins /home/serg/Abk/maria/storage/innobase/row/row0ins.cc:3660
          #8 0x55adbdbf8a8a in row_ins_step(que_thr_t*) /home/serg/Abk/maria/storage/innobase/row/row0ins.cc:3789
          #9 0x55adbdc42676 in row_insert_for_mysql(unsigned char const*, row_prebuilt_t*, ins_mode_t) /home/serg/Abk/maria/storage/innobase/row/row0mysql.cc:1313
          #10 0x55adbd88dcb7 in ha_innobase::write_row(unsigned char const*) /home/serg/Abk/maria/storage/innobase/handler/ha_innodb.cc:7832
          #11 0x55adbceccc94 in handler::ha_write_row(unsigned char const*) /home/serg/Abk/maria/sql/handler.cc:7851
          #12 0x55adbc94c0d3 in TR_table::update(unsigned long long, unsigned long long) /home/serg/Abk/maria/sql/table.cc:10230
          #13 0x55adbce9636f in ha_commit_trans(THD*, bool) /home/serg/Abk/maria/sql/handler.cc:1842
          #14 0x55adbceba0e6 in ha_enable_transaction(THD*, bool) /home/serg/Abk/maria/sql/handler.cc:5804
          #15 0x55adbc85950a in mysql_trans_commit_alter_copy_data(THD*) /home/serg/Abk/maria/sql/sql_table.cc:11659
          #16 0x55adbc85e500 in copy_data_between_tables /home/serg/Abk/maria/sql/sql_table.cc:12207
          #17 0x55adbc8556a0 in mysql_alter_table(THD*, st_mysql_const_lex_string const*, st_mysql_const_lex_string const*, Table_specification_st*, TABLE_LIST*, Recreate_info*, Alter_info*, unsigned int, st_order*, bool, bool) /home/serg/Abk/maria/sql/sql_table.cc:11179
          #18 0x55adbca24945 in Sql_cmd_alter_table::execute(THD*) /home/serg/Abk/maria/sql/sql_alter.cc:615
          #19 0x55adbc546ac3 in mysql_execute_command(THD*, bool) /home/serg/Abk/maria/sql/sql_parse.cc:5732
          #20 0x55adbc5541e1 in mysql_parse(THD*, char*, unsigned int, Parser_state*) /home/serg/Abk/maria/sql/sql_parse.cc:7743
          #21 0x55adbc52b70b in dispatch_command(enum_server_command, THD*, char*, unsigned int, bool) /home/serg/Abk/maria/sql/sql_parse.cc:1893
          #22 0x55adbc5283ff in do_command(THD*, bool) /home/serg/Abk/maria/sql/sql_parse.cc:1406
          #23 0x55adbca06168 in do_handle_one_connection(CONNECT*, bool) /home/serg/Abk/maria/sql/sql_connect.cc:1445
          #24 0x55adbca05aff in handle_one_connection /home/serg/Abk/maria/sql/sql_connect.cc:1347
          #25 0x55adbd684537 in pfs_spawn_thread /home/serg/Abk/maria/storage/perfschema/pfs.cc:2201
          #26 0x7fef5966ab38 in start_thread /var/tmp/portage/sys-libs/glibc-2.37-r3/work/glibc-2.37/nptl/pthread_create.c:444
      

      Attachments

        Issue Links

          Activity

            People

              thiru Thirunarayanan Balathandayuthapani
              serg Sergei Golubchik
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Git Integration

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