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

ASSERT_COLUMN_MARKED_FOR_READ failed in ANALYZE TABLE

Details

    Description

      create table t1 (c varchar(3) not null, v varchar(4) as (c) virtual);
      insert into t1 (c) values ('a'),('b');
      analyze table t1 persistent for columns (v) indexes ();
      

      10.4 890e0278706768e18

      assert/assert.c:92(__assert_fail_base)[0x7fd3d85fabd7]
      /lib/x86_64-linux-gnu/libc.so.6(+0x2dc82)[0x7fd3d85fac82]
      sql/field.cc:7575(Field_varstring::val_str(String*, String*))[0x5637532a5c58]
      sql/field.h:834(Field::val_str(String*))[0x56375299e196]
      sql/field.h:608(Field::save_in_field_str(Field*))[0x5637532cae0c]
      sql/field.h:1825(Field_str::save_in_field(Field*))[0x5637532cdecd]
      sql/field.h:770(Field::store_field(Field*))[0x5637532cb42f]
      sql/field_conv.cc:852(field_conv_incompatible(Field*, Field*))[0x5637532e2504]
      sql/field_conv.cc:865(field_conv(Field*, Field*))[0x5637532e25a1]
      sql/item.cc:6352(save_field_in_field(Field*, bool*, Field*, bool))[0x56375336200a]
      sql/item.cc:6404(Item_field::save_in_field(Field*, bool))[0x563753362667]
      sql/table.cc:7798(TABLE::update_virtual_fields(handler*, enum_vcol_update_mode))[0x563752eaa72f]
      sql/handler.cc:2817(handler::ha_rnd_next(unsigned char*))[0x563753307f84]
      sql/sql_statistics.cc:2751(collect_statistics_for_table(THD*, TABLE*))[0x563752db8856]
      sql/sql_admin.cc:882(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*)))[0x563752f65a60]
      sql/sql_admin.cc:1315(Sql_cmd_analyze_table::execute(THD*))[0x563752f695c2]
      sql/sql_parse.cc:6314(mysql_execute_command(THD*))[0x563752c04338]
      sql/sql_parse.cc:8116(mysql_parse(THD*, char*, unsigned int, Parser_state*, bool, bool))[0x563752c0eb8c]
      sql/sql_parse.cc:1854(dispatch_command(enum_server_command, THD*, char*, unsigned int, bool, bool))[0x563752be9907]
      sql/sql_parse.cc:1397(do_command(THD*))[0x563752be6a9f]
      sql/sql_connect.cc:1402(do_handle_one_connection(CONNECT*))[0x563752f3e721]
      sql/sql_connect.cc:1309(handle_one_connection)[0x563752f3e0fe]
      perfschema/pfs.cc:1864(pfs_spawn_thread)[0x563754293f2e]
      /lib/x86_64-linux-gnu/libpthread.so.0(+0x76ba)[0x7fd3d923f6ba]
      x86_64/clone.S:111(clone)[0x7fd3d86d441d]
      

      //similar for all data types, e.g. datetime, char:

      sql/field.cc:6890(Field_datetimef::get_TIME(st_mysql_time*, unsigned char const*, date_mode_t) const)[0x55c733b1e270]
      sql/field.h:3410(Field_datetimef::get_date(st_mysql_time*, date_mode_t))[0x55c733b54273]
      sql/field.h:2664(Field_temporal::save_in_field(Field*))[0x55c733b51c66]
      sql/field.h:770(Field::store_field(Field*))[0x55c733b4b42f]
      sql/field_conv.cc:852(field_conv_incompatible(Field*, Field*))[0x55c733b62504]
      sql/field_conv.cc:865(field_conv(Field*, Field*))[0x55c733b625a1]
      sql/item.cc:6352(save_field_in_field(Field*, bool*, Field*, bool))[0x55c733be200a]
      sql/item.cc:6404(Item_field::save_in_field(Field*, bool))[0x55c733be2667]
      sql/table.cc:7798(TABLE::update_virtual_fields(handler*, enum_vcol_update_mode))[0x55c73372a72f]
      sql/handler.cc:2817(handler::ha_rnd_next(unsigned char*))[0x55c733b87f84]
      sql/sql_statistics.cc:2751(collect_statistics_for_table(THD*, TABLE*))[0x55c733638856]
      sql/sql_admin.cc:882(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*)))[0x55c7337e5a60]
      sql/sql_admin.cc:1315(Sql_cmd_analyze_table::execute(THD*))[0x55c7337e95c2]
      sql/sql_parse.cc:6314(mysql_execute_command(THD*))[0x55c733484338]
      sql/sql_parse.cc:8116(mysql_parse(THD*, char*, unsigned int, Parser_state*, bool, bool))[0x55c73348eb8c]
      sql/sql_parse.cc:1854(dispatch_command(enum_server_command, THD*, char*, unsigned int, bool, bool))[0x55c733469907]
      sql/sql_parse.cc:1397(do_command(THD*))[0x55c733466a9f]
      sql/sql_connect.cc:1402(do_handle_one_connection(CONNECT*))[0x55c7337be721]
      sql/sql_connect.cc:1309(handle_one_connection)[0x55c7337be0fe]
      perfschema/pfs.cc:1864(pfs_spawn_thread)[0x55c734b13f2e]
      /lib/x86_64-linux-gnu/libpthread.so.0(+0x76ba)[0x7f381b0776ba]
      x86_64/clone.S:111(clone)[0x7f381a50c41d]
      

      Attachments

        Activity

          alice Alice Sherepa added a comment -

          10.4 6d68a3464e9a93baecc2

          mysqld: /10.4/sql/field.cc:8361: virtual String* Field_blob::val_str(String*, String*): Assertion `!table || (!table->read_set || bitmap_is_set(table->read_set, field_index) || (!(ptr >= table->record[0] && ptr < table->record[0] + table->s->reclength)))' failed.
          190312 13:52:51 [ERROR] mysqld got signal 6 ;
           
          assert/assert.c:92(__assert_fail_base)[0x7f240da6ebd7]
          /lib/x86_64-linux-gnu/libc.so.6(+0x2dc82)[0x7f240da6ec82]
          /10.4/sql/mysqld(_ZN10Field_blob7val_strEP6StringS1_+0x565)[0x562aa89726a1]
          sql/field.cc:8363(Field_blob::val_str(String*, String*))[0x562aa8a15f76]
          sql/item.cc:3125(Item_field::val_str(String*))[0x562aa8b73eb5]
          sql/item_strfunc.cc:1612(Item_func_left::val_str(String*))[0x562aa83b7c61]
          sql/item.h:899(Item::val_str())[0x562aa8afb1f2]
          sql/item_func.cc:1736(Item_func_hash::val_int())[0x562aa8a2edc7]
          sql/item.cc:6480(Item::save_int_in_field(Field*, bool))[0x562aa8700af4]
          sql/sql_type.cc:3588(Type_handler_int_result::Item_save_in_field(Item*, Field*, bool) const)[0x562aa8a2efa3]
          sql/item.cc:6490(Item::save_in_field(Field*, bool))[0x562aa852a8ad]
          sql/table.cc:8191(TABLE::update_virtual_fields(handler*, enum_vcol_update_mode))[0x562aa89cffee]
          sql/handler.cc:2999(handler::ha_rnd_next(unsigned char*))[0x562aa8430a6b]
          sql/sql_statistics.cc:2828(collect_statistics_for_table(THD*, TABLE*))[0x562aa85ef65c]
          sql/sql_admin.cc:882(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*)))[0x562aa85f3224]
          sql/sql_admin.cc:1315(Sql_cmd_analyze_table::execute(THD*))[0x562aa826d99e]
          sql/sql_parse.cc:6393(mysql_execute_command(THD*))[0x562aa827818d]
          sql/sql_parse.cc:8204(mysql_parse(THD*, char*, unsigned int, Parser_state*, bool, bool))[0x562aa82509bb]
          sql/sql_parse.cc:1831(dispatch_command(enum_server_command, THD*, char*, unsigned int, bool, bool))[0x562aa824d906]
          sql/sql_parse.cc:1358(do_command(THD*))[0x562aa85c1f0d]
          sql/sql_connect.cc:1399(do_handle_one_connection(CONNECT*))[0x562aa85c18d7]
          /lib/x86_64-linux-gnu/libpthread.so.0(+0x76ba)[0x7f240e8b76ba]
          x86_64/clone.S:111(clone)[0x7f240db4841d]
          

          --grammar=conf/mariadb/optimizer.yy --notnull --views=MERGE --gendata-advanced --no-mask --queries=100M --duration=400 --threads=2 --seed=1552395148 --views --vcols --reporters=Backtrace,ErrorLog,Deadlock --validator=TransformerNoComparator --transformer=ConvertTablesToDerived,ConvertTablesToViews,DisableJoinCache,ExecuteAsWhereSubquery,LimitDecrease,LimitIncrease,NullIf,ExecuteAsCTE,ExecuteAsCTE2,ExecuteAsDeleteReturning,ExecuteAsExcept,ExecuteAsExecuteImmediate,ExecuteAsInsertSelect,ExecuteAsIntersect,ExecuteAsUnion,ExecuteAsUpdateDelete,ExecuteAsView,ExecuteAsPreparedTwice,ExecuteAsSPTwice --redefine=conf/mariadb/general-workarounds.yy --redefine=conf/mariadb/versioning.yy --redefine=conf/mariadb/alter_table.yy --redefine=conf/mariadb/instant_add.yy --redefine=conf/mariadb/sequences.yy --redefine=conf/mariadb/redefine_temporary_tables.yy --redefine=conf/mariadb/sp.yy --redefine=conf/mariadb/modules/sql_mode.yy --redefine=conf/mariadb/redefine_random_keys.yy --redefine=conf/mariadb/analyze-tables-at-start.yy --mysqld=--log_output=FILE --mysqld=--log-bin --mysqld=--log_bin_trust_function_creators=1 --mysqld=--loose-max-statement-time=30 --mysqld=--loose-debug_assert_on_not_freed_memory=0 --mysqld=--lock-wait-timeout=10 --mysqld=--innodb-lock-wait-timeout=5 --genconfig=conf/mariadb/10.4.cnf.template --mysqld=--optimizer_switch=condition_pushdown_from_having=off --engine=MyISAM --mtr-build-thread=302 --basedir=/git/10.4
          

          alice Alice Sherepa added a comment - 10.4 6d68a3464e9a93baecc2 mysqld: /10.4/sql/field.cc:8361: virtual String* Field_blob::val_str(String*, String*): Assertion `!table || (!table->read_set || bitmap_is_set(table->read_set, field_index) || (!(ptr >= table->record[0] && ptr < table->record[0] + table->s->reclength)))' failed. 190312 13:52:51 [ERROR] mysqld got signal 6 ;   assert/assert.c:92(__assert_fail_base)[0x7f240da6ebd7] /lib/x86_64-linux-gnu/libc.so.6(+0x2dc82)[0x7f240da6ec82] /10.4/sql/mysqld(_ZN10Field_blob7val_strEP6StringS1_+0x565)[0x562aa89726a1] sql/field.cc:8363(Field_blob::val_str(String*, String*))[0x562aa8a15f76] sql/item.cc:3125(Item_field::val_str(String*))[0x562aa8b73eb5] sql/item_strfunc.cc:1612(Item_func_left::val_str(String*))[0x562aa83b7c61] sql/item.h:899(Item::val_str())[0x562aa8afb1f2] sql/item_func.cc:1736(Item_func_hash::val_int())[0x562aa8a2edc7] sql/item.cc:6480(Item::save_int_in_field(Field*, bool))[0x562aa8700af4] sql/sql_type.cc:3588(Type_handler_int_result::Item_save_in_field(Item*, Field*, bool) const)[0x562aa8a2efa3] sql/item.cc:6490(Item::save_in_field(Field*, bool))[0x562aa852a8ad] sql/table.cc:8191(TABLE::update_virtual_fields(handler*, enum_vcol_update_mode))[0x562aa89cffee] sql/handler.cc:2999(handler::ha_rnd_next(unsigned char*))[0x562aa8430a6b] sql/sql_statistics.cc:2828(collect_statistics_for_table(THD*, TABLE*))[0x562aa85ef65c] sql/sql_admin.cc:882(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*)))[0x562aa85f3224] sql/sql_admin.cc:1315(Sql_cmd_analyze_table::execute(THD*))[0x562aa826d99e] sql/sql_parse.cc:6393(mysql_execute_command(THD*))[0x562aa827818d] sql/sql_parse.cc:8204(mysql_parse(THD*, char*, unsigned int, Parser_state*, bool, bool))[0x562aa82509bb] sql/sql_parse.cc:1831(dispatch_command(enum_server_command, THD*, char*, unsigned int, bool, bool))[0x562aa824d906] sql/sql_parse.cc:1358(do_command(THD*))[0x562aa85c1f0d] sql/sql_connect.cc:1399(do_handle_one_connection(CONNECT*))[0x562aa85c18d7] /lib/x86_64-linux-gnu/libpthread.so.0(+0x76ba)[0x7f240e8b76ba] x86_64/clone.S:111(clone)[0x7f240db4841d] --grammar=conf/mariadb/optimizer.yy --notnull --views=MERGE --gendata-advanced --no-mask --queries=100M --duration=400 --threads=2 --seed=1552395148 --views --vcols --reporters=Backtrace,ErrorLog,Deadlock --validator=TransformerNoComparator --transformer=ConvertTablesToDerived,ConvertTablesToViews,DisableJoinCache,ExecuteAsWhereSubquery,LimitDecrease,LimitIncrease,NullIf,ExecuteAsCTE,ExecuteAsCTE2,ExecuteAsDeleteReturning,ExecuteAsExcept,ExecuteAsExecuteImmediate,ExecuteAsInsertSelect,ExecuteAsIntersect,ExecuteAsUnion,ExecuteAsUpdateDelete,ExecuteAsView,ExecuteAsPreparedTwice,ExecuteAsSPTwice --redefine=conf/mariadb/general-workarounds.yy --redefine=conf/mariadb/versioning.yy --redefine=conf/mariadb/alter_table.yy --redefine=conf/mariadb/instant_add.yy --redefine=conf/mariadb/sequences.yy --redefine=conf/mariadb/redefine_temporary_tables.yy --redefine=conf/mariadb/sp.yy --redefine=conf/mariadb/modules/sql_mode.yy --redefine=conf/mariadb/redefine_random_keys.yy --redefine=conf/mariadb/analyze-tables-at-start.yy --mysqld=--log_output=FILE --mysqld=--log-bin --mysqld=--log_bin_trust_function_creators=1 --mysqld=--loose-max-statement-time=30 --mysqld=--loose-debug_assert_on_not_freed_memory=0 --mysqld=--lock-wait-timeout=10 --mysqld=--innodb-lock-wait-timeout=5 --genconfig=conf/mariadb/10.4.cnf.template --mysqld=--optimizer_switch=condition_pushdown_from_having=off --engine=MyISAM --mtr-build-thread=302 --basedir=/git/10.4

          midenok please review the patch on `bb-10.2-nikita`:
          c1227119 MDEV-18249 ASSERT_COLUMN_MARKED_FOR_READ failed in ANALYZE TABLE

          nikitamalyavin Nikita Malyavin added a comment - midenok please review the patch on `bb-10.2-nikita`: c1227119 MDEV-18249 ASSERT_COLUMN_MARKED_FOR_READ failed in ANALYZE TABLE

          the minimal test case failing on 10.3+:

          -- source include/have_innodb.inc
          set use_stat_tables=PREFERABLY;
          CREATE TABLE `configurations` (
            `id` int(3) NOT NULL AUTO_INCREMENT,
            `property` text DEFAULT NULL,
            `value` text DEFAULT NULL,
            `active` tinyint(1) DEFAULT NULL,
            PRIMARY KEY (`id`),
            UNIQUE KEY `property` (`property`) USING HASH
          ) ENGINE=InnoDB AUTO_INCREMENT=46 DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;
          insert configurations(property) values('a'), ('b'), ('c'), ('d'), ('e'), ('f');
          analyze table `configurations`;
          drop table configurations;
          

          The patch is updated a little: link

          unfortunately the test can't be included in the commit, because long unique was introduced only in 10.3.

          nikitamalyavin Nikita Malyavin added a comment - the minimal test case failing on 10.3+: -- source include/have_innodb.inc set use_stat_tables=PREFERABLY; CREATE TABLE `configurations` ( `id` int (3) NOT NULL AUTO_INCREMENT, `property` text DEFAULT NULL , `value` text DEFAULT NULL , `active` tinyint(1) DEFAULT NULL , PRIMARY KEY (`id`), UNIQUE KEY `property` (`property`) USING HASH ) ENGINE=InnoDB AUTO_INCREMENT=46 DEFAULT CHARSET=utf8mb4 ROW_FORMAT= DYNAMIC ; insert configurations(property) values ( 'a' ), ( 'b' ), ( 'c' ), ( 'd' ), ( 'e' ), ( 'f' ); analyze table `configurations`; drop table configurations; The patch is updated a little: link unfortunately the test can't be included in the commit, because long unique was introduced only in 10.3.

          People

            nikitamalyavin Nikita Malyavin
            alice Alice Sherepa
            Votes:
            0 Vote for this issue
            Watchers:
            7 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Git Integration

                Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.