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

Assertion `field->col->is_binary() || field->prefix_len % field->col->mbmaxlen == 0' failed in dict_index_add_to_cache

    XMLWordPrintable

    Details

      Description

      Test case from MDEV-20726 is still failing:

      --source include/have_innodb.inc
       
      CREATE TABLE `ratings_copy` (
      `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
      `ctime` timestamp NOT NULL DEFAULT current_timestamp(),
      `order_id` int(10) unsigned NOT NULL,
      `client_id` int(10) unsigned DEFAULT NULL,
      `courier_id` int(10) unsigned DEFAULT NULL,
      `dispatcher_id` int(10) unsigned DEFAULT NULL,
      `point_id` int(10) unsigned DEFAULT NULL,
      `problem_id` int(10) unsigned DEFAULT NULL,
      `courier_rating` int(11) DEFAULT NULL COMMENT 'Оценка курьера клиентом',
      `courier_rating_comment` text CHARACTER SET utf8 DEFAULT NULL COMMENT 'Отзыв клиента',
      `actual_rating` int(11) DEFAULT NULL,
      `dispatcher_comment` text CHARACTER SET utf8 DEFAULT NULL COMMENT 'Комментарий диспетчера',
      PRIMARY KEY (`id`),
      UNIQUE KEY `problem_id` (`problem_id`),
      KEY `courier_id` (`courier_id`),
      KEY `order_id` (`order_id`),
      KEY `client_id` (`client_id`),
      KEY `idx_dispatcher_comment_courier_rating` (`dispatcher_comment`(1),`courier_rating`),
      KEY `idx_courier_rating_comment_courier_rating` (`courier_rating_comment`(1),`courier_rating`),
      KEY `idx_courier_rating` (`courier_rating`),
      KEY `courier_client` (`courier_id`,`client_id`),
      KEY `client_id_rating_ctime` (`client_id`,`courier_rating`,`ctime`)
      ) ENGINE=InnoDB AUTO_INCREMENT=14807 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Оценка качества услуг клиентом';
      INSERT INTO `ratings_copy` VALUES (14807,'0000-00-00 00:00:00',0,0,0,0,0,0,0,'\"courier_rating_comment\"',0,'\"dispatcher_comment\"'),(14808,'0000-00-00 00:00:00',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(14809,'0000-00-00 00:00:00',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(14810,'0000-00-00 00:00:00',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(14811,'0000-00-00 00:00:00',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(14812,'0000-00-00 00:00:00',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
      ALTER TABLE `ratings_copy` MODIFY courier_rating_comment text DEFAULT NULL COMMENT 'Отзыв клиента';
      
      

      10.4 9bdf35e90f36d9be8cc7591e2ed

      mysqld: /10.4/storage/innobase/dict/dict0dict.cc:1904: dberr_t dict_index_add_to_cache(dict_index_t*&, ulint, const dict_add_v_col_t*): Assertion `field->col->is_binary() || field->prefix_len % field->col->mbmaxlen == 0' failed.
      200615 16:01:26 [ERROR] mysqld got signal 6 ;
       
      Server version: 10.4.14-MariaDB-debug-log
       
      linux/raise.c:51(__GI_raise)[0x7fe2df6f17bb]
      stdlib/abort.c:81(__GI_abort)[0x7fe2df6dc535]
      intl/loadmsgcat.c:1177(_nl_load_domain)[0x7fe2df6dc40f]
      /lib/x86_64-linux-gnu/libc.so.6(+0x30102)[0x7fe2df6ea102]
      /10.4/sql/mysqld(+0x270c9b7)[0x55cd684c99b7]
      dict/dict0dict.cc:1906(dict_index_add_to_cache(dict_index_t*&, unsigned long, dict_add_v_col_t const*))[0x55cd684adf41]
      dict/dict0crea.cc:1249(dict_create_index_step(que_thr_t*))[0x55cd680ce563]
      que/que0que.cc:1049(que_thr_step(que_thr_t*))[0x55cd680ce949]
      que/que0que.cc:1101(que_run_threads_low(que_thr_t*))[0x55cd680ced8e]
      que/que0que.cc:1143(que_run_threads(que_thr_t*))[0x55cd67ed9e1b]
      handler/handler0alter.cc:6142(create_index_dict(trx_t*, dict_index_t*, dict_add_v_col_t const*))[0x55cd67ee38e0]
      handler/handler0alter.cc:6968(prepare_inplace_alter_table_dict(Alter_inplace_info*, TABLE const*, TABLE const*, char const*, unsigned long, unsigned long, unsigned long, bool, bool))[0x55cd67eef726]
      handler/handler0alter.cc:8248(ha_innobase::prepare_inplace_alter_table(TABLE*, Alter_inplace_info*))[0x55cd678ba236]
      sql/handler.cc:4574(handler::ha_prepare_inplace_alter_table(TABLE*, Alter_inplace_info*))[0x55cd6732d9a0]
      sql/sql_table.cc:7711(mysql_inplace_alter_table(THD*, TABLE_LIST*, TABLE*, TABLE*, Alter_inplace_info*, enum_alter_inplace_result, MDL_request*, Alter_table_ctx*))[0x55cd6733eb70]
      sql/sql_table.cc:10151(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))[0x55cd674b7b69]
      sql/sql_alter.cc:514(Sql_cmd_alter_table::execute(THD*))[0x55cd670e717c]
      sql/sql_parse.cc:6101(mysql_execute_command(THD*))[0x55cd670f2aa5]
      sql/sql_parse.cc:7901(mysql_parse(THD*, char*, unsigned int, Parser_state*, bool, bool))[0x55cd670ca0f6]
      sql/sql_parse.cc:1844(dispatch_command(enum_server_command, THD*, char*, unsigned int, bool, bool))[0x55cd670c6b75]
      sql/sql_parse.cc:1359(do_command(THD*))[0x55cd6749fca7]
      sql/sql_connect.cc:1412(do_handle_one_connection(CONNECT*))[0x55cd6749f549]
      sql/sql_connect.cc:1317(handle_one_connection)[0x55cd68ac6eb3]
      nptl/pthread_create.c:487(start_thread)[0x7fe2e01acfa3]
      x86_64/clone.S:97(clone)[0x7fe2df7b34cf]
       
      Query (0x62b0000a1290): ALTER TABLE `ratings_copy` MODIFY courier_rating_comment text DEFAULT NULL COMMENT ' 
      

      also on non-debug:

      10.4 49ac606a75d2f4d2898d0d56

      2020-06-15 16:08:32 0x7f56e6eb3700  InnoDB: Assertion failure in file /10.4/storage/innobase/data/data0type.cc line 67
      InnoDB: Failing assertion: !(prefix_len % mbmaxlen)
      InnoDB: We intentionally generate a memory trap.
      InnoDB: Submit a detailed bug report to https://jira.mariadb.org/
      InnoDB: If you get repeated assertion failures or crashes, even
      InnoDB: immediately after the mysqld startup, there may be
      InnoDB: corruption in the InnoDB tablespace. Please refer to
      InnoDB: https://mariadb.com/kb/en/library/innodb-recovery-modes/
      InnoDB: about forcing recovery.
      200615 16:08:32 [ERROR] mysqld got signal 6 ;
       
      Server version: 10.4.14-MariaDB-log
       
      linux/raise.c:51(__GI_raise)[0x7f56f1d1d7bb]
      stdlib/abort.c:81(__GI_abort)[0x7f56f1d08535]
      /10.4/sql/mysqld(+0x59e795)[0x55c94f82a795]
      ut/ut0rbt.cc:469(rbt_eject_node(ib_rbt_node_t*, ib_rbt_node_t*) [clone .cold.8])[0x55c94f835ea5]
      data/data0type.cc:95(dtype_validate(dtype_t const*))[0x55c94fd1ef21]
      include/data0data.ic:58(dfield_set_len)[0x55c94fd26733]
      row/row0merge.cc:2360(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))[0x55c94fd291d2]
      include/ut0stage.h:434(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))[0x55c94fc99e5e]
      handler/handler0alter.cc:8482(ha_innobase::inplace_alter_table(TABLE*, Alter_inplace_info*))[0x55c94f9ada78]
      sql/sql_table.cc:7747(mysql_inplace_alter_table)[0x55c94f9fcfb0]
      sql/sql_alter.cc:514(Sql_cmd_alter_table::execute(THD*))[0x55c94f91a9a9]
      sql/sql_parse.cc:6101(mysql_execute_command(THD*))[0x55c94f921818]
      sql/sql_parse.cc:7918(mysql_parse(THD*, char*, unsigned int, Parser_state*, bool, bool))[0x55c94f923a45]
      sql/sql_parse.cc:1844(dispatch_command(enum_server_command, THD*, char*, unsigned int, bool, bool))[0x55c94f924f81]
      sql/sql_parse.cc:1359(do_command(THD*))[0x55c94f9f8e34]
      sql/sql_connect.cc:1412(do_handle_one_connection(CONNECT*))[0x55c94f9f8f24]
      sql/sql_connect.cc:1318(handle_one_connection)[0x55c94ff4c45f]
      nptl/pthread_create.c:487(start_thread)[0x7f56f27d6fa3]
      x86_64/clone.S:97(clone)[0x7f56f1ddf4cf]
       
      Query (0x7f5698010020): ALTER TABLE `ratings_copy` MODIFY courier_rating_comment text DEFAULT NULL COMMENT '
      

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              kevg Eugene Kosov
              Reporter:
              alice Alice Sherepa
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved: