Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
-
10.4(EOL), 10.5, 10.6, 10.7(EOL), 10.8(EOL), 10.9(EOL), 10.10(EOL), 10.11
Description
This issue has found during the testing of MDEV-30009:
mysqld: /data/Server/bb-10.6-MDEV-30009/storage/innobase/include/dict0dict.inl:82: ulint dict_col_type_assert_equal(const dict_col_t*, const dtype_t*): Assertion `col->mtype == type->mtype' failed.
|
sdp:/data/results/1669148461/TBR-1670$ _RR_TRACE_DIR=./1/rr rr replay --mark-stdio
|
The purge tries to do ibuf_insert() for the uncommitted index:
#5 0x00007f9389df071b in __assert_fail_base (fmt=0x7f9389fa5150 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n",
|
assertion=0x56509dfb9760 "col->mtype == type->mtype",
|
file=0x56509dfb94a0 "/data/Server/bb-10.6-MDEV-30009/storage/innobase/include/dict0dict.inl", line=82, function=<optimized out>)
|
at ./assert/assert.c:92
|
#6 0x00007f9389e01e96 in __GI___assert_fail (assertion=0x56509dfb9760 "col->mtype == type->mtype",
|
file=0x56509dfb94a0 "/data/Server/bb-10.6-MDEV-30009/storage/innobase/include/dict0dict.inl", line=82,
|
function=0x56509dfb97a0 "ulint dict_col_type_assert_equal(const dict_col_t*, const dtype_t*)") at ./assert/assert.c:101
|
#7 0x000056509cfb513a in dict_col_type_assert_equal (col=0x6190000f1848, type=type@entry=0x619000afe750)
|
at /data/Server/bb-10.6-MDEV-30009/storage/innobase/include/dict0dict.inl:82
|
#8 0x000056509cfb9e92 in rec_get_converted_size_comp_prefix_low<>(const dict_index_t *, const dfield_t *, ulint, ulint *, rec_comp_status_t, bool) (index=index@entry=0x616004b30d08, dfield=0x619000afe740, n_fields=<optimized out>, extra=extra@entry=0x0,
|
status=status@entry=REC_STATUS_ORDINARY, temp=temp@entry=false) at /data/Server/bb-10.6-MDEV-30009/storage/innobase/rem/rem0rec.cc:1212
|
#9 0x000056509cfc9a5c in rec_get_converted_size_comp (index=index@entry=0x616004b30d08, tuple=tuple@entry=0x619000afe708, extra=extra@entry=0x0)
|
at /data/Server/bb-10.6-MDEV-30009/storage/innobase/rem/rem0rec.cc:1338
|
#10 0x000056509ce01966 in rec_get_converted_size (index=index@entry=0x616004b30d08, dtuple=dtuple@entry=0x619000afe708, n_ext=n_ext@entry=0)
|
at /data/Server/bb-10.6-MDEV-30009/storage/innobase/include/rem0rec.inl:1120
|
#11 0x000056509ce279ff in ibuf_insert (op=op@entry=IBUF_OP_DELETE, entry=entry@entry=0x619000afe708, index=index@entry=0x616004b30d08,
|
page_id=..., zip_size=zip_size@entry=2048, thr=<optimized out>) at /data/Server/bb-10.6-MDEV-30009/storage/innobase/ibuf/ibuf0ibuf.cc:3568
|
#12 0x000056509d2cc71b in btr_cur_search_to_nth_level (level=level@entry=0, tuple=tuple@entry=0x619000afe708, mode=mode@entry=PAGE_CUR_LE,
|
latch_mode=latch_mode@entry=BTR_PURGE_LEAF, cursor=cursor@entry=0x7f936761f340, mtr=mtr@entry=0x7f936761f820, autoinc=<optimized out>)
|
at /data/Server/bb-10.6-MDEV-30009/storage/innobase/btr/btr0cur.cc:1619
|
#13 0x000056509d0e7e82 in btr_pcur_open (mtr=0x7f936761f820, autoinc=0, cursor=0x7f936761f340, latch_mode=BTR_PURGE_LEAF, mode=PAGE_CUR_LE,
|
tuple=0x619000afe708) at /data/Server/bb-10.6-MDEV-30009/storage/innobase/include/btr0pcur.inl:325
|
#14 row_search_index_entry (entry=entry@entry=0x619000afe708, mode=mode@entry=BTR_PURGE_LEAF, pcur=pcur@entry=0x7f936761f340,
|
mtr=mtr@entry=0x7f936761f820) at /data/Server/bb-10.6-MDEV-30009/storage/innobase/row/row0row.cc:1286
|
#15 0x000056509d0cdeb5 in row_purge_remove_sec_if_poss_leaf (node=node@entry=0x61a000009fb8, index=index@entry=0x616004b30d08,
|
entry=entry@entry=0x619000afe708) at /data/Server/bb-10.6-MDEV-30009/storage/innobase/row/row0purge.cc:471
|
#16 0x000056509d0cfc63 in row_purge_remove_sec_if_poss (entry=0x619000afe708, index=0x616004b30d08, node=0x61a000009fb8)
|
at /data/Server/bb-10.6-MDEV-30009/storage/innobase/row/row0purge.cc:573
|
#17 row_purge_upd_exist_or_extern_func (thr=thr@entry=0x61a000009f10, node=node@entry=0x61a000009fb8, undo_rec=undo_rec@entry=0x6210000490b8 "")
|
at /data/Server/bb-10.6-MDEV-30009/storage/innobase/row/row0purge.cc:773
|
Meanwhile the alter is waiting for exclusive MDL:
#16 MDL_wait::timed_wait (this=this@entry=0x62b000149370, owner=0x62b000149300, abs_timeout=abs_timeout@entry=0x7f936958c240,
|
set_status_on_timeout=set_status_on_timeout@entry=false, wait_state_name=<optimized out>) at /data/Server/bb-10.6-MDEV-30009/sql/mdl.cc:1207
|
#17 0x000056509be0be62 in MDL_context::acquire_lock (this=this@entry=0x62b000149370, mdl_request=mdl_request@entry=0x7f936958c340,
|
lock_wait_timeout=lock_wait_timeout@entry=2) at /data/Server/bb-10.6-MDEV-30009/sql/mdl.cc:2388
|
#18 0x000056509be0d9be in MDL_context::upgrade_shared_lock (this=this@entry=0x62b000149370, mdl_ticket=0x6070000f75c0,
|
new_type=new_type@entry=MDL_EXCLUSIVE, lock_wait_timeout=<optimized out>) at /data/Server/bb-10.6-MDEV-30009/sql/mdl.cc:2597
|
#19 0x000056509b806789 in wait_while_table_is_used (thd=thd@entry=0x62b000149218, table=table@entry=0x6190009d1298,
|
function=function@entry=HA_EXTRA_PREPARE_FOR_RENAME) at /data/Server/bb-10.6-MDEV-30009/sql/sql_base.cc:1344
|
#20 0x000056509bc2f3ec in mysql_inplace_alter_table (thd=thd@entry=0x62b000149218, table_list=<optimized out>, table=table@entry=0x6190009d1298,
|
altered_table=altered_table@entry=0x7f936958dbf0, ha_alter_info=ha_alter_info@entry=0x7f936958d4f0,
|
target_mdl_request=target_mdl_request@entry=0x7f936958d5f0, ddl_log_state=<optimized out>, trigger_param=<optimized out>,
|
alter_ctx=<optimized out>) at /data/Server/bb-10.6-MDEV-30009/sql/sql_table.cc:7427
|
#21 0x000056509bc6666c in mysql_alter_table (thd=thd@entry=0x62b000149218, new_db=new_db@entry=0x62b00014dc48,
|
--Type <RET> for more, q to quit, c to continue without paging--
|
new_name=new_name@entry=0x62b00014e060, create_info=0x7f936958ff70, table_list=table_list@entry=0x62b000118418, alter_info=<optimized out>,
|
order_num=<optimized out>, order=<optimized out>, ignore=<optimized out>, if_exists=<optimized out>)
|
at /data/Server/bb-10.6-MDEV-30009/sql/sql_table.cc:10347
|
#22 0x000056509bdf88cf in Sql_cmd_alter_table::execute (this=<optimized out>, thd=0x62b000149218)
|
at /data/Server/bb-10.6-MDEV-30009/sql/sql_alter.cc:552
|
#23 0x000056509b9b71c6 in mysql_execute_command (thd=thd@entry=0x62b000149218,
|
is_called_from_prepared_stmt=is_called_from_prepared_stmt@entry=false) at /data/Server/bb-10.6-MDEV-30009/sql/sql_parse.cc:5997
|
#24 0x000056509b9b957e in mysql_parse (thd=thd@entry=0x62b000149218, rawbuf=<optimized out>, length=<optimized out>,
|
parser_state=parser_state@entry=0x7f9369591620) at /data/Server/bb-10.6-MDEV-30009/sql/sql_parse.cc:8016
|
#25 0x000056509b9bfdb9 in dispatch_command (command=command@entry=COM_QUERY, thd=thd@entry=0x62b000149218,
|
packet=packet@entry=0x629000b8b219 " ALTER TABLE t2 MODIFY COLUMN col_string VARCHAR(20) NULL, LOCK = SHARED, ALGORITHM = NOCOPY /* E_R Thread8 QNO 1783 CON_ID 160 */ ", packet_length=packet_length@entry=132, blocking=blocking@entry=true)
|
at /data/Server/bb-10.6-MDEV-30009/sql/sql_parse.cc:1896
|
#26 0x000056509b9c4e18 in do_command (thd=0x62b000149218, blocking=blocking@entry=true) at /data/Server/bb-10.6-MDEV-30009/sql/sql_parse.cc:1409
|
#27 0x000056509bde0786 in do_handle_one_connection (connect=<optimized out>, connect@entry=0x6080000033b8, put_in_cache=put_in_cache@entry=true)
|
at /data/Server/bb-10.6-MDEV-30009/sql/sql_connect.cc:1415
|
#28 0x000056509bde0dec in handle_one_connection (arg=0x6080000033b8) at /data/Server/bb-10.6-MDEV-30009/sql/sql_connect.cc:1317
|
#29 0x00007f9389e5cb43 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
|
#30 0x00007f9389eedbb4 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:100
|
Possible fix is to do the following in ibuf_insert()
if (!index->is_committed())
|
DBUG_RETURN(false);
|
Write a mtr test case to repeat the scenario. As of now, it should be repeatable due to MDEV-26294