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

Server crashes in fetch_data_into_cache_low on concurrent select from I_S and ALTER TABLE

Details

    • Bug
    • Status: Closed (View Workflow)
    • Major
    • Resolution: Fixed
    • 10.0.0
    • None
    • None
    • None

    Description

      #3  <signal handler called>
      #4  0x0000000000aea2fc in fetch_data_into_cache_low (cache=0x1d78e00, only_ac_nl=1, trx_list=0x7f45248c53e0) at 10.0/storage/innobase/trx/trx0i_s.cc:1298
      #5  0x0000000000aea7fb in fetch_data_into_cache (cache=0x1d78e00) at 10.0/storage/innobase/trx/trx0i_s.cc:1359
      #6  0x0000000000aea8b8 in trx_i_s_possibly_fetch_data_into_cache (cache=0x1d78e00) at 10.0/storage/innobase/trx/trx0i_s.cc:1391
      #7  0x0000000000a4b2fd in trx_i_s_common_fill_table (thd=0x7f4524b85710, tables=0x33c62a8) at 10.0/storage/innobase/handler/i_s.cc:1252
      #8  0x0000000000698fba in do_fill_table (thd=0x7f4524b85710, table_list=0x33c62a8, join_table=0x7f450c28bdc0) at 10.0/sql/sql_show.cc:7579
      #9  0x00000000006993cc in get_schema_tables_result (join=0x33c7570, executed_place=PROCESSED_BY_JOIN_EXEC) at 10.0/sql/sql_show.cc:7686
      #10 0x0000000000644005 in JOIN::exec_inner (this=0x33c7570) at 10.0/sql/sql_select.cc:2408
      #11 0x0000000000643669 in JOIN::exec (this=0x33c7570) at 10.0/sql/sql_select.cc:2251
      #12 0x0000000000646baa in mysql_select (thd=0x7f4524b85710, rref_pointer_array=0x7f4524b88a68, tables=0x33c62a8, wild_num=1, fields=..., conds=0x0, og_num=0, order=0x0, group=0x0, having=0x0, proc_param=0x0, select_options=2684619520, result=0x33c7550, unit=0x7f4524b88130, select_lex=0x7f4524b88808) at 10.0/sql/sql_select.cc:3188
      #13 0x000000000063d4a0 in handle_select (thd=0x7f4524b85710, lex=0x7f4524b88080, result=0x33c7550, setup_tables_done_option=0) at 10.0/sql/sql_select.cc:362
      #14 0x0000000000615c64 in execute_sqlcom_select (thd=0x7f4524b85710, all_tables=0x33c62a8) at 10.0/sql/sql_parse.cc:4937
      #15 0x000000000060e2da in mysql_execute_command (thd=0x7f4524b85710) at 10.0/sql/sql_parse.cc:2421
      #16 0x0000000000618520 in mysql_parse (thd=0x7f4524b85710, rawbuf=0x33c6038 "SELECT * FROM INFORMATION_SCHEMA . `INNODB_LOCKS`", length=49, parser_state=0x7f452814d540) at 10.0/sql/sql_parse.cc:6056
      #17 0x000000000060b4cc in dispatch_command (command=COM_QUERY, thd=0x7f4524b85710, packet=0x7f4524b8ace1 "SELECT * FROM INFORMATION_SCHEMA . `INNODB_LOCKS`", packet_length=49) at 10.0/sql/sql_parse.cc:1216
      #18 0x000000000060a6c5 in do_command (thd=0x7f4524b85710) at 10.0/sql/sql_parse.cc:945
      #19 0x000000000070efc0 in do_handle_one_connection (thd_arg=0x7f4524b85710) at 10.0/sql/sql_connect.cc:1254
      #20 0x000000000070e990 in handle_one_connection (arg=0x7f4524b85710) at 10.0/sql/sql_connect.cc:1168
      #21 0x00007f45329daefc in start_thread (arg=0x7f452814e700) at pthread_create.c:304
      #22 0x00007f453218a59d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112

      Trying to get some variables.
      Some pointers may be invalid and cause the dump to abort.
      Query (0x33c6038): SELECT * FROM INFORMATION_SCHEMA . `INNODB_LOCKS`
      Connection ID (thread ID): 9
      Status: NOT_KILLED

      branch: 10.0

      revision-id: sergii@pisem.net-20121030171542-xbhcun8kfqykdy9l
      date: 2012-10-30 18:15:42 +0100
      revno: 3466

      Could not reproduce on MariaDB 5.5, MySQL 5.6 revno 4229.

      RQG grammar (is.yy):

      query:
              SELECT * FROM database . _table ;
       
      thread1:
              ALTER TABLE A ADD COLUMN _letter INTEGER |
              ALTER TABLE A DROP COLUMN _letter ;
       
      database:
              { $last_database = $prng->arrayElement(['INFORMATION_SCHEMA']); return $last_database };
       

      Run as

      perl ./gentest.pl --grammar=is.yy --queries=100M --duration=600 --threads=8 --dsn=dbi:mysql:host=127.0.0.1:port=3306:user=root:database=test --gendata

      Attachments

        Issue Links

          Activity

            I have at least one problem, I'm not in mariadb group, can't run the test and I can't copy the files (not in sudoers).

            R: Jan

            jplindst Jan Lindström (Inactive) added a comment - I have at least one problem, I'm not in mariadb group, can't run the test and I can't copy the files (not in sudoers). R: Jan

            Fix candidate:

            === modified file 'storage/innobase/trx/trx0i_s.cc'
            — storage/innobase/trx/trx0i_s.cc 2012-08-01 14:27:34 +0000
            +++ storage/innobase/trx/trx0i_s.cc 2013-07-16 09:04:13 +0000
            @@ -1290,7 +1290,10 @@

            for (trx = UT_LIST_GET_FIRST(*trx_list);
            trx != NULL;

            • trx = UT_LIST_GET_NEXT(trx_list, trx)) {
              + trx =
              + (trx_list == &trx_sys->mysql_trx_list
              + ? UT_LIST_GET_NEXT(mysql_trx_list, trx)
              + : UT_LIST_GET_NEXT(trx_list, trx))) {

            i_s_trx_row_t* trx_row;
            i_s_locks_row_t* requested_lock_row;

            jplindst Jan Lindström (Inactive) added a comment - Fix candidate: === modified file 'storage/innobase/trx/trx0i_s.cc' — storage/innobase/trx/trx0i_s.cc 2012-08-01 14:27:34 +0000 +++ storage/innobase/trx/trx0i_s.cc 2013-07-16 09:04:13 +0000 @@ -1290,7 +1290,10 @@ for (trx = UT_LIST_GET_FIRST(*trx_list); trx != NULL; trx = UT_LIST_GET_NEXT(trx_list, trx)) { + trx = + (trx_list == &trx_sys->mysql_trx_list + ? UT_LIST_GET_NEXT(mysql_trx_list, trx) + : UT_LIST_GET_NEXT(trx_list, trx))) { i_s_trx_row_t* trx_row; i_s_locks_row_t* requested_lock_row;

            I can't remember why the bug is on me, but from test results, it was fixed in 10.0.4, possibly by the 5.6.10 merge (easily reproducible as described on 10.0.3, not reproducible on 10.0.4). Closing as fixed.

            elenst Elena Stepanova added a comment - I can't remember why the bug is on me, but from test results, it was fixed in 10.0.4, possibly by the 5.6.10 merge (easily reproducible as described on 10.0.3, not reproducible on 10.0.4). Closing as fixed.

            People

              elenst Elena Stepanova
              elenst Elena Stepanova
              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.