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

Assertion row_get_rec_trx_id(rec, index, *offsets) in row_sel_try_search_shortcut_for_mysql()

    XMLWordPrintable

Details

    Description

      Thread 1 (Thread 0x7f2d33210700 (LWP 1569879)):
      #0  __pthread_kill (threadid=<optimized out>, signo=6) at ../sysdeps/unix/sysv/linux/pthread_kill.c:56
      #1  0x0000562af367b5fd in my_write_core (sig=6) at /data/Server/bb-10.6-MDEV-27783A/mysys/stacktrace.c:424
      #2  0x0000562af23d2edd in handle_fatal_signal (sig=6) at /data/Server/bb-10.6-MDEV-27783A/sql/signal_handler.cc:345
      #3  <signal handler called>
      #4  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
      #5  0x00007f2d59d3d859 in __GI_abort () at abort.c:79
      #6  0x00007f2d59d3d729 in __assert_fail_base (fmt=0x7f2d59ed3588 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=0x562af42e4600 "row_get_rec_trx_id(rec, index, *offsets)", file=0x562af42e08c0 "/data/Server/bb-10.6-MDEV-27783A/storage/innobase/row/row0sel.cc", line=3976, function=<optimized out>) at assert.c:92
      #7  0x00007f2d59d4ef36 in __GI___assert_fail (assertion=0x562af42e4600 "row_get_rec_trx_id(rec, index, *offsets)", file=0x562af42e08c0 "/data/Server/bb-10.6-MDEV-27783A/storage/innobase/row/row0sel.cc", line=3976, function=0x562af42e4520 "ulint row_sel_try_search_shortcut_for_mysql(const rec_t**, row_prebuilt_t*, rec_offs**, mem_heap_t**, mtr_t*)") at assert.c:101
      #8  0x0000562af30dfd67 in row_sel_try_search_shortcut_for_mysql (out_rec=0x7f2d3320c120, prebuilt=0x622000073988, offsets=0x7f2d3320c1c0, heap=0x7f2d3320c1a0, mtr=0x7f2d3320cc80) at /data/Server/bb-10.6-MDEV-27783A/storage/innobase/row/row0sel.cc:3976
      #9  0x0000562af30e39a4 in row_search_mvcc (buf=0x6200002290b8 "\377\001\341\063\200", mode=PAGE_CUR_GE, prebuilt=0x622000073988, match_mode=1, direction=0) at /data/Server/bb-10.6-MDEV-27783A/storage/innobase/row/row0sel.cc:4519
      #10 0x0000562af2ce2f1d in ha_innobase::index_read (this=0x61d000ae9cb8, buf=0x6200002290b8 "\377\001\341\063\200", key_ptr=0x6140000163c4 "\357K", key_len=4, find_flag=HA_READ_KEY_EXACT) at /data/Server/bb-10.6-MDEV-27783A/storage/innobase/handler/ha_innodb.cc:9074
      #11 0x0000562af2ce5ce7 in ha_innobase::rnd_pos (this=0x61d000ae9cb8, buf=0x6200002290b8 "\377\001\341\063\200", pos=0x6140000163c4 "\357K") at /data/Server/bb-10.6-MDEV-27783A/storage/innobase/handler/ha_innodb.cc:9571
      --Type <RET> for more, q to quit, c to continue without paging--
      #12 0x0000562af23e923f in handler::ha_rnd_pos (this=0x61d000ae9cb8, buf=0x6200002290b8 "\377\001\341\063\200", pos=0x6140000163c4 "\357K") at /data/Server/bb-10.6-MDEV-27783A/sql/handler.cc:3449
      #13 0x0000562af27f3d9a in rr_from_pointers (info=0x62b000168e70) at /data/Server/bb-10.6-MDEV-27783A/sql/records.cc:615
      #14 0x0000562af1a7006e in READ_RECORD::read_record (this=0x62b000168e70) at /data/Server/bb-10.6-MDEV-27783A/sql/records.h:81
      #15 0x0000562af1d36071 in sub_select (join=0x62b000166fc8, join_tab=0x62b000168da8, end_of_records=false) at /data/Server/bb-10.6-MDEV-27783A/sql/sql_select.cc:21120
      #16 0x0000562af1d346fd in do_select (join=0x62b000166fc8, procedure=0x0) at /data/Server/bb-10.6-MDEV-27783A/sql/sql_select.cc:20646
      #17 0x0000562af1cc5913 in JOIN::exec_inner (this=0x62b000166fc8) at /data/Server/bb-10.6-MDEV-27783A/sql/sql_select.cc:4753
      #18 0x0000562af1cc315c in JOIN::exec (this=0x62b000166fc8) at /data/Server/bb-10.6-MDEV-27783A/sql/sql_select.cc:4531
      #19 0x0000562af1cc6d61 in mysql_select (thd=0x62b00015e218, tables=0x62b0001659c8, fields=..., conds=0x62b000166338, og_num=1, order=0x62b000166e28, group=0x0, having=0x0, proc_param=0x0, select_options=2148797184, result=0x62b000166f98, unit=0x62b000162380, select_lex=0x62b000165388) at /data/Server/bb-10.6-MDEV-27783A/sql/sql_select.cc:5010
      #20 0x0000562af1c9bc71 in handle_select (thd=0x62b00015e218, lex=0x62b0001622b8, result=0x62b000166f98, setup_tables_done_option=0) at /data/Server/bb-10.6-MDEV-27783A/sql/sql_select.cc:545
      #21 0x0000562af1c160cc in execute_sqlcom_select (thd=0x62b00015e218, all_tables=0x62b0001659c8) at /data/Server/bb-10.6-MDEV-27783A/sql/sql_parse.cc:6271
      #22 0x0000562af1c04eb7 in mysql_execute_command (thd=0x62b00015e218, is_called_from_prepared_stmt=false) at /data/Server/bb-10.6-MDEV-27783A/sql/sql_parse.cc:3961
      #23 0x0000562af1c20132 in mysql_parse (thd=0x62b00015e218, rawbuf=0x62b000165238 "SELECT `pk` FROM `t8` WHERE `pk` BETWEEN 1466 AND 35100 ORDER BY `col_char` /* E_R Thread6 QNO 17331 CON_ID 23 */", length=113, parser_state=0x7f2d3320eb20) at /data/Server/bb-10.6-MDEV-27783A/sql/sql_parse.cc:8045
      #24 0x0000562af1bf84d7 in dispatch_command (command=COM_QUERY, thd=0x62b00015e218, packet=0x629000d1b219 "", packet_length=114, blocking=true) at /data/Server/bb-10.6-MDEV-27783A/sql/sql_parse.cc:1912
      #25 0x0000562af1bf570d in do_command (thd=0x62b00015e218, blocking=true) at /data/Server/bb-10.6-MDEV-27783A/sql/sql_parse.cc:1409
      #26 0x0000562af1ff769c in do_handle_one_connection (connect=0x6080000032b8, put_in_cache=true) at /data/Server/bb-10.6-MDEV-27783A/sql/sql_connect.cc:1418
      #27 0x0000562af1ff6f28 in handle_one_connection (arg=0x6080000032b8) at /data/Server/bb-10.6-MDEV-27783A/sql/sql_connect.cc:1312
      #28 0x00007f2d5a267609 in start_thread (arg=<optimized out>) at pthread_create.c:477
      #29 0x00007f2d59e3a293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
       
      Another thread:
       
      Thread 32 (Thread 0x7f2d32e5f700 (LWP 1569900)):
      #0  syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
      #1  0x0000562af31482d6 in ssux_lock_impl<true>::wait (this=0x615000003340, lk=2147483649) at /data/Server/bb-10.6-MDEV-27783A/storage/innobase/sync/srw_lock.cc:245
      #2  0x0000562af3147e8a in ssux_lock_impl<true>::wr_wait (this=0x615000003340, lk=2147483649) at /data/Server/bb-10.6-MDEV-27783A/storage/innobase/sync/srw_lock.cc:378
      #3  0x0000562af2d3247b in ssux_lock_impl<true>::wr_lock (this=0x615000003340) at /data/Server/bb-10.6-MDEV-27783A/storage/innobase/include/srw_lock.h:265
      #4  0x0000562af326eb2d in btr_search_check_free_space_in_heap (index=0x616001b78408) at /data/Server/bb-10.6-MDEV-27783A/storage/innobase/btr/btr0sea.cc:184
      #5  0x0000562af327a4bd in btr_search_update_hash_on_insert (cursor=0x7f2d32e5ad20, ahi_latch=0x615000003340) at /data/Server/bb-10.6-MDEV-27783A/storage/innobase/btr/btr0sea.cc:1975
      #6  0x0000562af324166b in btr_cur_optimistic_insert (flags=0, cursor=0x7f2d32e5ad20, offsets=0x7f2d32e5ace0, heap=0x7f2d32e5acc0, entry=0x6190007c2f08, rec=0x7f2d32e5ad00, big_rec=0x7f2d32e5aca0, n_ext=0, thr=0x6250000df1c8, mtr=0x7f2d32e5b130) at /data/Server/bb-10.6-MDEV-27783A/storage/innobase/btr/btr0cur.cc:3606
      #7  0x0000562af30243fb in row_ins_clust_index_entry_low (flags=0, mode=2, index=0x616001b78408, n_uniq=1, entry=0x6190007c2f08, n_ext=0, thr=0x6250000df1c8) at /data/Server/bb-10.6-MDEV-27783A/storage/innobase/row/row0ins.cc:2760
      #8  0x0000562af3026b5d in row_ins_clust_index_entry (index=0x616001b78408, entry=0x6190007c2f08, thr=0x6250000df1c8, n_ext=0) at /data/Server/bb-10.6-MDEV-27783A/storage/innobase/row/row0ins.cc:3231
      #9  0x0000562af310c094 in row_upd_clust_rec_by_insert (node=0x6250000deca8, index=0x616001b78408, thr=0x6250000df1c8, referenced=false, foreign=false, mtr=0x7f2d32e5bec0) at /data/Server/bb-10.6-MDEV-27783A/storage/innobase/row/row0upd.cc:2460
      #10 0x0000562af310e7e9 in row_upd_clust_step (node=0x6250000deca8, thr=0x6250000df1c8) at /data/Server/bb-10.6-MDEV-27783A/storage/innobase/row/row0upd.cc:2831
      #11 0x0000562af310f01a in row_upd (node=0x6250000deca8, thr=0x6250000df1c8) at /data/Server/bb-10.6-MDEV-27783A/storage/innobase/row/row0upd.cc:2907
      #12 0x0000562af310fb86 in row_upd_step (thr=0x6250000df1c8) at /data/Server/bb-10.6-MDEV-27783A/storage/innobase/row/row0upd.cc:3051
      #13 0x0000562af306c35d in row_update_for_mysql (prebuilt=0x6220002c2988) at /data/Server/bb-10.6-MDEV-27783A/storage/innobase/row/row0mysql.cc:1700
      #14 0x0000562af2ce1026 in ha_innobase::update_row (this=0x61d000f370b8, old_row=0x6200001f27e0 "\377\001\341\063\200", new_row=0x6200001f20b8 "\377\001\341\063\200") at /data/Server/bb-10.6-MDEV-27783A/storage/innobase/handler/ha_innodb.cc:8666
      #15 0x0000562af2406695 in handler::ha_update_row (this=0x61d000f370b8, old_data=0x6200001f27e0 "\377\001\341\063\200", new_data=0x6200001f20b8 "\377\001\341\063\200") at /data/Server/bb-10.6-MDEV-27783A/sql/handler.cc:7598
      #16 0x0000562af1ee82e5 in mysql_update (thd=0x62b00018f218, table_list=0x62b0001963d8, fields=..., values=..., conds=0x62b0001970b0, order_num=0, order=0x0, limit=18446744073709551615, ignore=true, found_return=0x7f2d32e5d2f0, updated_return=0x7f2d32e5d310) at /data/Server/bb-10.6-MDEV-27783A/sql/sql_update.cc:1087
      #17 0x0000562af1c07cee in mysql_execute_command (thd=0x62b00018f218, is_called_from_prepared_stmt=false) at /data/Server/bb-10.6-MDEV-27783A/sql/sql_parse.cc:4423
      #18 0x0000562af1c20132 in mysql_parse (thd=0x62b00018f218, rawbuf=0x62b000196238 "UPDATE IGNORE `t8` SET `pk` = `pk` + 1 WHERE `pk` = 19439 /* E_R Thread7 QNO 18709 CON_ID 26 */", length=95, parser_state=0x7f2d32e5db20) at /data/Server/bb-10.6-MDEV-27783A/sql/sql_parse.cc:8045
      #19 0x0000562af1bf84d7 in dispatch_command (command=COM_QUERY, thd=0x62b00018f218, packet=0x629000d70219 "UPDATE IGNORE `t8` SET `pk` = `pk` + 1 WHERE `pk` = 19439 /* E_R Thread7 QNO 18709 CON_ID 26 */ ", packet_length=96, blocking=true) at /data/Server/bb-10.6-MDEV-27783A/sql/sql_parse.cc:1912
      #20 0x0000562af1bf570d in do_command (thd=0x62b00018f218, blocking=true) at /data/Server/bb-10.6-MDEV-27783A/sql/sql_parse.cc:1409
      #21 0x0000562af1ff769c in do_handle_one_connection (connect=0x608000003438, put_in_cache=true) at /data/Server/bb-10.6-MDEV-27783A/sql/sql_connect.cc:1418
      #22 0x0000562af1ff6f28 in handle_one_connection (arg=0x608000003438) at /data/Server/bb-10.6-MDEV-27783A/sql/sql_connect.cc:1312
      #23 0x00007f2d5a267609 in start_thread (arg=<optimized out>) at pthread_create.c:477
      #24 0x00007f2d59e3a293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
      

      In t1, but the record has DB_TRX_ID:

      (gdb) x/6b rec + 4
      0x7f2d4d27fe5c:	0x00	0x00	0x00	0x01	0x3f	0x04
      

      In t32:

      (gdb) p /x prebuilt->trx->id
      $5 = 0x13f04
      

      So it looks like race condition happening between the above two threads. AHI lookup didn't take sufficent lock before accessing the record. It has to be analysed further to find out the root cause.

      Attachments

        Activity

          People

            Unassigned Unassigned
            thiru Thirunarayanan Balathandayuthapani
            Votes:
            0 Vote for this issue
            Watchers:
            1 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.