Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
-
10.4.0
Description
10.4 b9a9055793ab8b9a50200e2f5560246
mysqld: /10.4/src/storage/innobase/handler/handler0alter.cc:348: void dict_index_t::instant_add_field(const dict_index_t&): Assertion `fields[i].same(instant.fields[i])' failed.
|
181114 17:22:54 [ERROR] mysqld got signal 6 ;
|
|
stdlib/abort.c:91(__GI_abort)[0x7eff6adf602a]
|
assert/assert.c:92(__assert_fail_base)[0x7eff6adecbd7]
|
/lib/x86_64-linux-gnu/libc.so.6(+0x2dc82)[0x7eff6adecc82]
|
handler/handler0alter.cc:349(dict_index_t::instant_add_field(dict_index_t const&))[0x561842709dd7]
|
handler/handler0alter.cc:491(dict_table_t::instant_column(dict_table_t const&, unsigned long const*))[0x56184270c46e]
|
handler/handler0alter.cc:5251(innobase_instant_try(Alter_inplace_info const*, ha_innobase_inplace_ctx*, TABLE const*, TABLE const*, trx_t*))[0x5618426d9c30]
|
handler/handler0alter.cc:9890(commit_try_norebuild(Alter_inplace_info*, ha_innobase_inplace_ctx*, TABLE*, TABLE const*, trx_t*, char const*))[0x561842716ebf]
|
handler/handler0alter.cc:10519(ha_innobase::commit_inplace_alter_table(TABLE*, Alter_inplace_info*, bool))[0x5618426fb413]
|
sql/handler.cc:4458(handler::ha_commit_inplace_alter_table(TABLE*, Alter_inplace_info*, bool))[0x561841e55b14]
|
sql/sql_table.cc:7601(mysql_inplace_alter_table(THD*, TABLE_LIST*, TABLE*, TABLE*, Alter_inplace_info*, enum_alter_inplace_result, MDL_request*, Alter_table_ctx*))[0x56184196a731]
|
sql/sql_table.cc:9692(mysql_alter_table(THD*, st_mysql_const_lex_string const*, st_mysql_const_lex_string const*, HA_CREATE_INFO*, TABLE_LIST*, Alter_info*, unsigned int, st_order*, bool))[0x561841976f18]
|
sql/sql_alter.cc:497(Sql_cmd_alter_table::execute(THD*))[0x561841ab5916]
|
sql/sql_parse.cc:6289(mysql_execute_command(THD*))[0x56184176f692]
|
sql/sql_parse.cc:8091(mysql_parse(THD*, char*, unsigned int, Parser_state*, bool, bool))[0x561841779ea1]
|
sql/sql_parse.cc:1853(dispatch_command(enum_server_command, THD*, char*, unsigned int, bool, bool))[0x561841754d9e]
|
sql/sql_parse.cc:1396(do_command(THD*))[0x561841751f36]
|
sql/sql_connect.cc:1402(do_handle_one_connection(CONNECT*))[0x561841aa6da7]
|
sql/sql_connect.cc:1309(handle_one_connection)[0x561841aa6784]
|
/lib/x86_64-linux-gnu/libpthread.so.0(+0x76ba)[0x7eff6ba316ba]
|
x86_64/clone.S:111(clone)[0x7eff6aec641d]
|
|
Trying to get some variables.
|
Some pointers may be invalid and cause the dump to abort.
|
Query (0x62b000085288): ALTER TABLE `AA` ADD COLUMN ( icol1 TINYINT UNSIGNED ZEROFILL NOT NULL );
|
mysqld: /10.4/src/storage/innobase/row/row0sel.cc:2905: void row_sel_field_store_in_mysql_format_func(byte*, const mysql_row_templ_t*, const dict_index_t*, ulint, const byte*, ulint): Assertion `(templ->is_virtual && !field) || (field && field->prefix_len ? field->prefix_len == len : templ->mysql_col_len == len)' failed.
|
181114 17:24:58 [ERROR] mysqld got signal 6 ;
|
|
linux/raise.c:54(__GI_raise)[0x7fde2d4f8428]
|
stdlib/abort.c:91(__GI_abort)[0x7fde2d4fa02a]
|
assert/assert.c:92(__assert_fail_base)[0x7fde2d4f0bd7]
|
/lib/x86_64-linux-gnu/libc.so.6(+0x2dc82)[0x7fde2d4f0c82]
|
row/row0sel.cc:2909(row_sel_field_store_in_mysql_format_func(unsigned char*, mysql_row_templ_t const*, dict_index_t const*, unsigned long, unsigned char const*, unsigned long))[0x55e20889704a]
|
row/row0sel.cc:3073(row_sel_store_mysql_field_func(unsigned char*, row_prebuilt_t*, unsigned char const*, dict_index_t const*, unsigned long const*, unsigned long, mysql_row_templ_t const*))[0x55e208898153]
|
row/row0sel.cc:3200(row_sel_store_mysql_rec(unsigned char*, row_prebuilt_t*, unsigned char const*, dtuple_t const*, bool, dict_index_t const*, unsigned long const*))[0x55e208899044]
|
row/row0sel.cc:5480(row_search_mvcc(unsigned char*, page_cur_mode_t, row_prebuilt_t*, unsigned long, unsigned long))[0x55e2088a3732]
|
handler/ha_innodb.cc:9258(ha_innobase::index_read(unsigned char*, unsigned char const*, unsigned int, ha_rkey_function))[0x55e2085867b7]
|
handler/ha_innodb.cc:9635(ha_innobase::index_first(unsigned char*))[0x55e20858925f]
|
handler/ha_innodb.cc:9728(ha_innobase::rnd_next(unsigned char*))[0x55e20858983e]
|
sql/handler.cc:2765(handler::ha_rnd_next(unsigned char*))[0x55e207d61fd0]
|
sql/records.cc:481(rr_sequential(READ_RECORD*))[0x55e2080f8127]
|
sql/records.h:73(READ_RECORD::read_record())[0x55e20750e252]
|
sql/sql_select.cc:20295(join_init_read_record(st_join_table*))[0x55e207791fc9]
|
sql/sql_select.cc:19359(sub_select(JOIN*, st_join_table*, bool))[0x55e20778b9cf]
|
sql/sql_select.cc:18902(do_select(JOIN*, Procedure*))[0x55e20778a027]
|
sql/sql_select.cc:4082(JOIN::exec_inner())[0x55e207728be5]
|
sql/sql_select.cc:3877(JOIN::exec())[0x55e20772692a]
|
sql/sql_select.cc:4283(mysql_select(THD*, TABLE_LIST*, unsigned int, List<Item>&, Item*, unsigned int, st_order*, st_order*, Item*, st_order*, unsigned long long, select_result*, st_select_lex_unit*, st_select_lex*))[0x55e207729cb5]
|
sql/sql_select.cc:385(handle_select(THD*, LEX*, select_result*, unsigned long))[0x55e207704205]
|
sql/sql_parse.cc:6554(execute_sqlcom_select(THD*, TABLE_LIST*))[0x55e20768a8fc]
|
sql/sql_parse.cc:3773(mysql_execute_command(THD*))[0x55e207679056]
|
sql/sql_parse.cc:8091(mysql_parse(THD*, char*, unsigned int, Parser_state*, bool, bool))[0x55e207692ea1]
|
sql/sql_parse.cc:1853(dispatch_command(enum_server_command, THD*, char*, unsigned int, bool, bool))[0x55e20766dd9e]
|
sql/sql_parse.cc:1396(do_command(THD*))[0x55e20766af36]
|
sql/sql_connect.cc:1402(do_handle_one_connection(CONNECT*))[0x55e2079bfda7]
|
sql/sql_connect.cc:1309(handle_one_connection)[0x55e2079bf784]
|
/lib/x86_64-linux-gnu/libpthread.so.0(+0x76ba)[0x7fde2e1356ba]
|
x86_64/clone.S:111(clone)[0x7fde2d5ca41d]
|
|
Trying to get some variables.
|
Some pointers may be invalid and cause the dump to abort.
|
Query (0x62b00007e288): select * from AA
|
mysqld: /10.4/src/storage/innobase/row/row0merge.cc:766: ulint row_merge_buf_add(row_merge_buf_t*, dict_index_t*, const dict_table_t*, const dict_table_t*, fts_psort_t*, const dtuple_t*, const row_ext_t*, doc_id_t*, mem_heap_t*, dberr_t*, mem_heap_t**, TABLE*, trx_t*): Assertion `len <= col->len || ((col->mtype) == 5 || (col->mtype) == 14)' failed.
|
181114 17:29:39 [ERROR] mysqld got signal 6 ;
|
|
linux/raise.c:54(__GI_raise)[0x7f574c9f3428]
|
stdlib/abort.c:91(__GI_abort)[0x7f574c9f502a]
|
assert/assert.c:92(__assert_fail_base)[0x7f574c9ebbd7]
|
/lib/x86_64-linux-gnu/libc.so.6(+0x2dc82)[0x7f574c9ebc82]
|
row/row0merge.cc:769(row_merge_buf_add(row_merge_buf_t*, dict_index_t*, dict_table_t const*, dict_table_t const*, fts_psort_t*, dtuple_t const*, row_ext_t const*, unsigned long*, mem_block_info_t*, dberr_t*, mem_block_info_t**, TABLE*, trx_t*))[0x55cb6d0aeea8]
|
row/row0merge.cc:2383(row_merge_read_clustered_index(trx_t*, TABLE*, dict_table_t const*, dict_table_t*, bool, dict_index_t**, dict_index_t*, fts_psort_t*, merge_file_t*, unsigned long const*, unsigned long, dtuple_t const*, dict_add_v_col_t const*, unsigned long const*, unsigned long, ib_sequence_t&, unsigned char*, bool, pfs_os_file_t*, ut_stage_alter_t*, double, unsigned char*, TABLE*, bool))[0x55cb6d0b8507]
|
row/row0merge.cc:4766(row_merge_build_indexes(trx_t*, dict_table_t*, dict_table_t*, bool, dict_index_t**, unsigned long const*, unsigned long, TABLE*, dtuple_t const*, unsigned long const*, unsigned long, ib_sequence_t&, bool, ut_stage_alter_t*, dict_add_v_col_t const*, TABLE*, bool))[0x55cb6d0c4a1b]
|
handler/handler0alter.cc:8041(ha_innobase::inplace_alter_table(TABLE*, Alter_inplace_info*))[0x55cb6cebdc6f]
|
sql/handler.h:4184(handler::ha_inplace_alter_table(TABLE*, Alter_inplace_info*))[0x55cb6c14d4ee]
|
sql/sql_table.cc:7555(mysql_inplace_alter_table(THD*, TABLE_LIST*, TABLE*, TABLE*, Alter_inplace_info*, enum_alter_inplace_result, MDL_request*, Alter_table_ctx*))[0x55cb6c137339]
|
sql/sql_table.cc:9692(mysql_alter_table(THD*, st_mysql_const_lex_string const*, st_mysql_const_lex_string const*, HA_CREATE_INFO*, TABLE_LIST*, Alter_info*, unsigned int, st_order*, bool))[0x55cb6c143f18]
|
sql/sql_table.cc:10604(mysql_recreate_table(THD*, TABLE_LIST*, bool))[0x55cb6c149fcd]
|
sql/sql_admin.cc:58(admin_recreate_table(THD*, TABLE_LIST*))[0x55cb6c294f99]
|
sql/sql_admin.cc:1027(mysql_admin_table(THD*, TABLE_LIST*, st_ha_check_opt*, char const*, thr_lock_type, bool, bool, unsigned int, int (*)(THD*, TABLE_LIST*, st_ha_check_opt*), int (handler::*)(THD*, st_ha_check_opt*), int (*)(THD*, TABLE_LIST*, st_ha_check_opt*)))[0x55cb6c29bf14]
|
sql/sql_admin.cc:1375(Sql_cmd_optimize_table::execute(THD*))[0x55cb6c29ea20]
|
sql/sql_parse.cc:6289(mysql_execute_command(THD*))[0x55cb6bf3c692]
|
sql/sql_parse.cc:8091(mysql_parse(THD*, char*, unsigned int, Parser_state*, bool, bool))[0x55cb6bf46ea1]
|
sql/sql_parse.cc:1853(dispatch_command(enum_server_command, THD*, char*, unsigned int, bool, bool))[0x55cb6bf21d9e]
|
sql/sql_parse.cc:1396(do_command(THD*))[0x55cb6bf1ef36]
|
sql/sql_connect.cc:1402(do_handle_one_connection(CONNECT*))[0x55cb6c273da7]
|
sql/sql_connect.cc:1309(handle_one_connection)[0x55cb6c273784]
|
/lib/x86_64-linux-gnu/libpthread.so.0(+0x76ba)[0x7f574d6306ba]
|
x86_64/clone.S:111(clone)[0x7f574cac541d]
|
|
Trying to get some variables.
|
Some pointers may be invalid and cause the dump to abort.
|
Query (0x62b00007e288): optimize table AA
|
On the non-debug build:
2018-11-14 17:56:47 17 [ERROR] InnoDB: Page old data size 64130 new data size 166, page old max ins size 0 new max ins size 16084
|
2018-11-14 17:56:47 17 [ERROR] InnoDB: Submit a detailed bug report to https://jira.mariadb.org/
|
to reproduce:
perl ./runall-trials.pl --basedir=/git/10.4 --vardir=/1q --duration=350 --threads=6 --reporters=Backtrace,ErrorLog,Deadlock --validators=TransformerNoComparator --views --mysqld=--log_output=FILE --mysqld=--max-statement-time=30 --engine=Aria --grammar=conf/mariadb/instant_add.yy --mysqld=--performance-schema --gendata --vcols --transformers=ExecuteAsIntersect,ExecuteAsExcept,ExecuteAsCTE,ExecuteAsExecuteImmediate,ExecuteAsDeleteReturning,ExecuteAsInsertSelect,ExecuteAsUnion,ExecuteAsUpdateDelete,ExecuteAsView,ExecuteAsPreparedTwice --trials=10 --force
|
Attachments
Issue Links
- is caused by
-
MDEV-15562 Instant DROP COLUMN or changing the order of columns
-
- Closed
-
- relates to
-
MDEV-17793 Crash in purge after instant DROP and emptying the table
-
- Closed
-
-
MDEV-17813 Crash in instant ALTER TABLE due to purge concurrently emptying table
-
- Closed
-
-
MDEV-17735 Assertion failure in row_parse_int() on first ADD/DROP COLUMN when an AUTO_INCREMENT column is not in PRIMARY KEY
-
- Closed
-
Activity
Field | Original Value | New Value |
---|---|---|
Link |
This issue is duplicated by |
Attachment | dt.7z [ 46694 ] |
Assignee | Marko Mäkelä [ marko ] |
Link |
This issue is duplicated by |
Link |
This issue relates to |
Component/s | Storage Engine - InnoDB [ 10129 ] | |
Affects Version/s | 10.4.0 [ 23115 ] | |
Affects Version/s | 10.4 [ 22408 ] | |
Labels | crash instant |
Status | Open [ 1 ] | In Progress [ 3 ] |
Comment |
[ It looks there have been a few more pushes in 10.4 after 16d43150, maybe they have changed things. [~alice], could you please try again? And if you get any of those, please preserve the general log.
So far I haven't been able to get the second failure from the previous coment, and the first one requires a gendata file which isn't in the tree. ] |
Attachment | `instant.n_core_fields == n_core_fields' .7z [ 46725 ] |
Attachment | instant.n_nullable.7z [ 46726 ] |
Attachment | &fields[n_fields.7z [ 46727 ] |
Link |
This issue relates to |
Comment |
[ Still occurs, not easily reproducible:
{noformat:title=10.4 740ce108a} mysqld: /data/src/10.4/storage/innobase/handler/handler0alter.cc:338: void dict_index_t::instant_add_field(const dict_index_t&): Assertion `instant.n_core_fields == n_core_fields' failed. 181122 15:39:31 [ERROR] mysqld got signal 6 ; #7 0x00007fb9a44f7ee2 in __assert_fail () from /lib/x86_64-linux-gnu/libc.so.6 #8 0x00005646f0134327 in dict_index_t::instant_add_field (this=0x7fb9140e6218, instant=...) at /data/src/10.4/storage/innobase/handler/handler0alter.cc:338 #9 0x00005646f0135706 in dict_table_t::instant_column (this=0x7fb9140b11b8, table=..., col_map=0x7fb9387a38a8) at /data/src/10.4/storage/innobase/handler/handler0alter.cc:487 #10 0x00005646f011ebb0 in innobase_instant_try (ha_alter_info=0x7fb9a1023c00, ctx=0x7fb938017570, altered_table=0x7fb9387c9c00, table=0x7fb9387d22a0, trx=0x7fb9a110e818) at /data/src/10.4/storage/innobase/handler/handler0alter.cc:5292 #11 0x00005646f013a369 in commit_try_norebuild (ha_alter_info=0x7fb9a1023c00, ctx=0x7fb938017570, altered_table=0x7fb9387c9c00, old_table=0x7fb9387d22a0, trx=0x7fb9a110e818, table_name=0x7fb9140e6a5d "t1") at /data/src/10.4/storage/innobase/handler/handler0alter.cc:9947 #12 0x00005646f012d952 in ha_innobase::commit_inplace_alter_table (this=0x7fb9387cdc68, altered_table=0x7fb9387c9c00, ha_alter_info=0x7fb9a1023c00, commit=true) at /data/src/10.4/storage/innobase/handler/handler0alter.cc:10576 #13 0x00005646efdc89d8 in handler::ha_commit_inplace_alter_table (this=0x7fb9387cdc68, altered_table=0x7fb9387c9c00, ha_alter_info=0x7fb9a1023c00, commit=true) at /data/src/10.4/sql/handler.cc:4457 #14 0x00005646efb92878 in mysql_inplace_alter_table (thd=0x7fb938000b00, table_list=0x7fb938015ca8, table=0x7fb9387d22a0, altered_table=0x7fb9387c9c00, ha_alter_info=0x7fb9a1023c00, inplace_supported=HA_ALTER_INPLACE_INSTANT, target_mdl_request=0x7fb9a1023d30, alter_ctx=0x7fb9a1024920) at /data/src/10.4/sql/sql_table.cc:7599 #15 0x00005646efb98693 in mysql_alter_table (thd=0x7fb938000b00, new_db=0x7fb9380051b8, new_name=0x7fb938005588, create_info=0x7fb9a1025510, table_list=0x7fb938015ca8, alter_info=0x7fb9a1025450, order_num=0, order=0x0, ignore=false) at /data/src/10.4/sql/sql_table.cc:9692 #16 0x00005646efc2181d in Sql_cmd_alter_table::execute (this=0x7fb938016400, thd=0x7fb938000b00) at /data/src/10.4/sql/sql_alter.cc:497 #17 0x00005646efac0a14 in mysql_execute_command (thd=0x7fb938000b00) at /data/src/10.4/sql/sql_parse.cc:6289 #18 0x00005646efac5938 in mysql_parse (thd=0x7fb938000b00, rawbuf=0x7fb938015b48 "ALTER TABLE t1 ADD COLUMN extra INT /* QNO 49452 CON_ID 14 */ /* QNO 49454 CON_ID 14 */", length=88, parser_state=0x7fb9a1026650, is_com_multi=false, is_next_command=false) at /data/src/10.4/sql/sql_parse.cc:8091 #19 0x00005646efab2c37 in dispatch_command (command=COM_QUERY, thd=0x7fb938000b00, packet=0x7fb93800b301 "ALTER TABLE t1 ADD COLUMN extra INT /* QNO 49452 CON_ID 14 */ /* QNO 49454 CON_ID 14 */ ", packet_length=89, is_com_multi=false, is_next_command=false) at /data/src/10.4/sql/sql_parse.cc:1851 #20 0x00005646efab165b in do_command (thd=0x7fb938000b00) at /data/src/10.4/sql/sql_parse.cc:1396 #21 0x00005646efc1ba9c in do_handle_one_connection (connect=0x5646f3b995a0) at /data/src/10.4/sql/sql_connect.cc:1402 #22 0x00005646efc1b820 in handle_one_connection (arg=0x5646f3b995a0) at /data/src/10.4/sql/sql_connect.cc:1308 #23 0x00007fb9a5fb3494 in start_thread (arg=0x7fb9a1027700) at pthread_create.c:333 #24 0x00007fb9a45b493f in clone () from /lib/x86_64-linux-gnu/libc.so.6 {noformat} {noformat:title=github.com/MariaDB/randgen elenst-dev 539d817245163} perl ./runall-new.pl --no-mask --seed=1542727721 --duration=400 --queries=100M --reporters=Backtrace,ErrorLog,Deadlock --validators=TransformerNoComparator --transformers=ConvertSubqueriesToViews,ConvertTablesToDerived,Count,DisableIndexes,DisableOptimizations,Distinct,EnableOptimizations,ExecuteAsCTE,ExecuteAsDeleteReturning,ExecuteAsDerived,ExecuteAsExcept,ExecuteAsExecuteImmediate,ExecuteAsInsertSelect,ExecuteAsIntersect,ExecuteAsSelectItem,ExecuteAsUnion,ExecuteAsUpdateDelete,ExecuteAsView,ExecuteAsWhereSubquery,Having,InlineSubqueries,InlineVirtualColumns,LimitRowsExamined,OrderBy,StraightJoin,ExecuteAsPreparedTwice,ExecuteAsTrigger,ExecuteAsSPTwice,ExecuteAsFunctionTwice --mysqld=--log_output=FILE --mysqld=--lock-wait-timeout=5 --mysqld=--innodb-lock-wait-timeout=3 --querytimeout=30 --vcols --threads=6 --grammar=alter_online.yy --gendata=conf/mariadb/oltp.zz --basedir1=/data/bld/10.4-mdev17721 --vardir1=/dev/shm/vardir2 {noformat} ] |
Link |
This issue relates to |
Link |
This issue is caused by |
Summary | Assertion `len <= col->len || ((col->mtype) == 5 || (col->mtype) == 14)'; Assertion `(templ->is_virtual && !field) || (field && field->prefix_len ? field->prefix_len == len : templ->mysql_col_len == len)'; Assertion `fields[i].same(instant.fields[i])' |
Various assertion failures due to |
Fix Version/s | 10.4.2 [ 23229 ] | |
Fix Version/s | 10.4 [ 22408 ] | |
Resolution | Fixed [ 1 ] | |
Status | In Progress [ 3 ] | Closed [ 6 ] |
Workflow | MariaDB v3 [ 90647 ] | MariaDB v4 [ 155207 ] |
In a failure that I analyzed in more detail, 2 instant ADD COLUMN were executed since the table was rebuilt: to the end, and to the start of the table (which is allowed by
MDEV-15562). The error occurred when trying to read the very first row in ALGORITHM=COPY. A TIMESTAMP column was incorrectly declared inside InnoDB as having a length of only 1 byte.