[MDEV-17054] InnoDB: Failing assertion: 0 after [ERROR] InnoDB needs charset 0 for doing a comparison, but MySQL cannot find that charset. Created: 2018-08-23  Updated: 2023-06-08  Resolved: 2023-06-08

Status: Closed
Project: MariaDB Server
Component/s: Full-text Search, Storage Engine - InnoDB
Affects Version/s: 10.0, 10.1
Fix Version/s: N/A

Type: Bug Priority: Major
Reporter: Elena Stepanova Assignee: Sergei Golubchik
Resolution: Won't Fix Votes: 0
Labels: None


 Description   

Note: This is likely to be related to, or even a duplicate of, MDEV-17004, but due to the oddity of the error message exposed to non-debug build users, I'd rather have it filed separately. Feel free to close as a duplicate if needed.

--source include/have_innodb.inc
 
CREATE TABLE t1 (
  c CHAR(12) NOT NULL DEFAULT '',
  vc CHAR(12) AS (c) VIRTUAL,
  e SET('','a','b') NOT NULL DEFAULT ''
) ENGINE=InnoDB;
ALTER TABLE t1 ADD FULLTEXT KEY(vc), LOCK=SHARED;
 
# Cleanup
DROP TABLE t1;

10.0 bcc677bb72

180823 23:53:17 [ERROR] InnoDB needs charset 0 for doing a comparison, but MySQL cannot find that charset.
2018-08-23 23:53:17 7f3fd97a3700  InnoDB: Assertion failure in thread 139912208332544 in file ha_innodb.cc line 5828
InnoDB: Failing assertion: 0
 
#5  0x00007f3fd76e53fa in abort () from /lib/x86_64-linux-gnu/libc.so.6
#6  0x00007f3fcff432c0 in innobase_get_fts_charset (mysql_type=254, charset_number=0) at /data/src/10.0/storage/innobase/handler/ha_innodb.cc:5828
#7  0x00007f3fcff16b6e in fts_index_get_charset (index=0x7f3fc3798778) at /data/src/10.0/storage/innobase/fts/fts0fts.cc:984
#8  0x00007f3fcff16c83 in fts_cache_index_cache_create (table=0x7f3fc3797af8, index=0x7f3fc3798778) at /data/src/10.0/storage/innobase/fts/fts0fts.cc:1041
#9  0x00007f3fcfec68c8 in dict_index_build_internal_fts (table=0x7f3fc3797af8, index=0x7f3fc37984f8) at /data/src/10.0/storage/innobase/dict/dict0dict.cc:3241
#10 0x00007f3fcfec4f50 in dict_index_add_to_cache (table=0x7f3fc3797af8, index=0x7f3fc37984f8, page_no=4294967295, strict=0) at /data/src/10.0/storage/innobase/dict/dict0dict.cc:2494
#11 0x00007f3fcfeb9cb3 in dict_create_index_step (thr=0x7f3fc3553b40) at /data/src/10.0/storage/innobase/dict/dict0crea.cc:1184
#12 0x00007f3fcfff7ed5 in que_thr_step (thr=0x7f3fc3553b40) at /data/src/10.0/storage/innobase/que/que0que.cc:1089
#13 0x00007f3fcfff8056 in que_run_threads_low (thr=0x7f3fc3553b40) at /data/src/10.0/storage/innobase/que/que0que.cc:1141
#14 0x00007f3fcfff81e2 in que_run_threads (thr=0x7f3fc3553b40) at /data/src/10.0/storage/innobase/que/que0que.cc:1182
#15 0x00007f3fd002f11f in row_merge_create_index_graph (trx=0x7f3fc3552278, table=0x7f3fc3797af8, index=0x7f3fc37984f8) at /data/src/10.0/storage/innobase/row/row0merge.cc:3515
#16 0x00007f3fd002f261 in row_merge_create_index (trx=0x7f3fc3552278, table=0x7f3fc3797af8, index_def=0x7f3fc342bd18) at /data/src/10.0/storage/innobase/row/row0merge.cc:3561
#17 0x00007f3fcff64068 in prepare_inplace_alter_table_dict (ha_alter_info=0x7f3fd97a0260, altered_table=0x7f3fc3515070, old_table=0x7f3fc349e470, table_name=0x7f3fc3461175 "t1", flags=1, flags2=94, fts_doc_id_col=2, add_fts_doc_id=true, add_fts_doc_id_idx=true) at /data/src/10.0/storage/innobase/handler/handler0alter.cc:3043
#18 0x00007f3fcff66f6f in ha_innodb::prepare_inplace_alter_table (this=0x7f3fc347e888, altered_table=0x7f3fc3515070, ha_alter_info=0x7f3fd97a0260) at /data/src/10.0/storage/innobase/handler/handler0alter.cc:4041
#19 0x0000000000844267 in handler::ha_prepare_inplace_alter_table (this=0x7f3fc347e888, altered_table=0x7f3fc3515070, ha_alter_info=0x7f3fd97a0260) at /data/src/10.0/sql/handler.cc:4208
#20 0x0000000000701fad in mysql_inplace_alter_table (thd=0x7f3fcbb69070, table_list=0x7f3fc34f8198, table=0x7f3fc349e470, altered_table=0x7f3fc3515070, ha_alter_info=0x7f3fd97a0260, inplace_supported=HA_ALTER_INPLACE_SHARED_LOCK_AFTER_PREPARE, target_mdl_request=0x7f3fd979fcb0, alter_ctx=0x7f3fd97a0840) at /data/src/10.0/sql/sql_table.cc:7114
#21 0x000000000070684d in mysql_alter_table (thd=0x7f3fcbb69070, new_db=0x7f3fc34f8778 "test", new_name=0x0, create_info=0x7f3fd97a14e0, table_list=0x7f3fc34f8198, alter_info=0x7f3fd97a1450, order_num=0, order=0x0, ignore=false) at /data/src/10.0/sql/sql_table.cc:8978
#22 0x000000000076f589 in Sql_cmd_alter_table::execute (this=0x7f3fc34f8848, thd=0x7f3fcbb69070) at /data/src/10.0/sql/sql_alter.cc:312
#23 0x000000000065470e in mysql_execute_command (thd=0x7f3fcbb69070) at /data/src/10.0/sql/sql_parse.cc:5118
#24 0x0000000000657d64 in mysql_parse (thd=0x7f3fcbb69070, rawbuf=0x7f3fc34f8088 "ALTER TABLE t1 ADD FULLTEXT KEY(vc), LOCK=SHARED", length=48, parser_state=0x7f3fd97a2640) at /data/src/10.0/sql/sql_parse.cc:6637
#25 0x000000000064a684 in dispatch_command (command=COM_QUERY, thd=0x7f3fcbb69070, packet=0x7f3fd15ef071 "ALTER TABLE t1 ADD FULLTEXT KEY(vc), LOCK=SHARED", packet_length=48) at /data/src/10.0/sql/sql_parse.cc:1300
#26 0x0000000000649984 in do_command (thd=0x7f3fcbb69070) at /data/src/10.0/sql/sql_parse.cc:1003
#27 0x000000000076acdc in do_handle_one_connection (thd_arg=0x7f3fcbb69070) at /data/src/10.0/sql/sql_connect.cc:1377
#28 0x000000000076aa4e in handle_one_connection (arg=0x7f3fcbb69070) at /data/src/10.0/sql/sql_connect.cc:1292
#29 0x0000000000accef0 in pfs_spawn_thread (arg=0x7f3fcbb19670) at /data/src/10.0/storage/perfschema/pfs.cc:1861
#30 0x00007f3fd93e0494 in start_thread (arg=0x7f3fd97a3700) at pthread_create.c:333
#31 0x00007f3fd779993f in clone () from /lib/x86_64-linux-gnu/libc.so.6

Debug and non-debug builds are affected.
No crash on 10.2.



 Comments   
Comment by Marko Mäkelä [ 2018-08-29 ]

Before 10.2, InnoDB does not know anything about virtual columns. I feel that the creation of any indexes on virtual columns has to be blocked in the SQL layer, before allowing the execution to enter InnoDB, either ALGORITHM=INPLACE (like in this case) or ALGORITHM=COPY.

Starting with 10.2, InnoDB correctly blocks attempts to create FULLTEXT or SPATIAL index on virtual columns.

Comment by Elena Stepanova [ 2023-06-08 ]

Closing as 10.1 is long EOL, and 10.2+ aren't affected.

Generated at Thu Feb 08 08:33:34 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.