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

Assertion `!in_use->is_error()' failed in TABLE::update_virtual_field

    Details

      Description

      CREATE TABLE t1 (a INT) ENGINE=MyISAM;
      INSERT INTO t1 (a) VALUES (1),(1);
       
      CREATE TABLE t2 (pk INT, b INT, c INT AS (b) VIRTUAL, PRIMARY KEY (pk), KEY(c)) ENGINE=MyISAM;
      --error ER_DUP_ENTRY
      INSERT INTO t2 (pk) SELECT a FROM t1;
       
      # Cleanup
      DROP TABLE t1, t2;
      

      10.2 46c9268b

      mysqld: /data/src/10.2/sql/table.cc:7685: int TABLE::update_virtual_field(Field*): Assertion `!in_use->is_error()' failed.
      190710 16:34:34 [ERROR] mysqld got signal 6 ;
       
      #6  0x00007fa07f96fe67 in __assert_fail_base (fmt=<optimized out>, assertion=assertion@entry=0x55a7eedf3768 "!in_use->is_error()", file=file@entry=0x55a7eedf177e "/data/src/10.2/sql/table.cc", line=line@entry=7685, function=function@entry=0x55a7eedf4ba0 <TABLE::update_virtual_field(Field*)::__PRETTY_FUNCTION__> "int TABLE::update_virtual_field(Field*)") at assert.c:92
      #7  0x00007fa07f96ff12 in __GI___assert_fail (assertion=0x55a7eedf3768 "!in_use->is_error()", file=0x55a7eedf177e "/data/src/10.2/sql/table.cc", line=7685, function=0x55a7eedf4ba0 <TABLE::update_virtual_field(Field*)::__PRETTY_FUNCTION__> "int TABLE::update_virtual_field(Field*)") at assert.c:101
      #8  0x000055a7ee44f3e1 in TABLE::update_virtual_field (this=0x7fa06807c6d0, vf=0x7fa06806d660) at /data/src/10.2/sql/table.cc:7685
      #9  0x000055a7eec1a7cc in compute_vcols (info=0x7fa06807ef20, record=0x7fa06806da10 "\377\001", keynum=1) at /data/src/10.2/storage/myisam/ha_myisam.cc:683
      #10 0x000055a7eec2e2b3 in sort_get_next_record (sort_param=0x7fa079ca1930) at /data/src/10.2/storage/myisam/mi_check.c:3657
      #11 0x000055a7eec2c674 in sort_key_read (sort_param=0x7fa079ca1930, key=0x7fa068080d50) at /data/src/10.2/storage/myisam/mi_check.c:3121
      #12 0x000055a7eec75332 in find_all_keys (info=0x7fa079ca1930, keys=2, sort_keys=0x7fa068080d40, buffpek=0x7fa079ca13a0, maxbuffer=0x7fa079ca1354, tempfile=0x7fa079ca13e0, tempfile_for_exceptions=0x7fa079ca1550) at /data/src/10.2/storage/myisam/sort.c:312
      #13 0x000055a7eec74d90 in _create_index_by_sort (info=0x7fa079ca1930, no_messages=1 '\001', sortbuff_size=134216704) at /data/src/10.2/storage/myisam/sort.c:228
      #14 0x000055a7eec29e43 in mi_repair_by_sort (param=0x7fa068034438, info=0x7fa06807ef20, name=0x7fa079ca21e0 "./test/t2", rep_quick=1) at /data/src/10.2/storage/myisam/mi_check.c:2401
      #15 0x000055a7eec1c9f8 in ha_myisam::repair (this=0x7fa06807d2d8, thd=0x7fa068000b00, param=..., do_optimize=false) at /data/src/10.2/storage/myisam/ha_myisam.cc:1272
      #16 0x000055a7eec1daef in ha_myisam::enable_indexes (this=0x7fa06807d2d8, mode=2) at /data/src/10.2/storage/myisam/ha_myisam.cc:1610
      #17 0x000055a7eec1dfbc in ha_myisam::end_bulk_insert (this=0x7fa06807d2d8) at /data/src/10.2/storage/myisam/ha_myisam.cc:1760
      #18 0x000055a7ee3222eb in handler::ha_end_bulk_insert (this=0x7fa06807d2d8) at /data/src/10.2/sql/handler.h:2918
      #19 0x000055a7ee31fc76 in select_insert::abort_result_set (this=0x7fa068013480) at /data/src/10.2/sql/sql_insert.cc:3959
      #20 0x000055a7ee37a974 in handle_select (thd=0x7fa068000b00, lex=0x7fa068004638, result=0x7fa068013480, setup_tables_done_option=1073741824) at /data/src/10.2/sql/sql_select.cc:383
      #21 0x000055a7ee33ef99 in mysql_execute_command (thd=0x7fa068000b00) at /data/src/10.2/sql/sql_parse.cc:4284
      #22 0x000055a7ee34a07e in mysql_parse (thd=0x7fa068000b00, rawbuf=0x7fa068012458 "INSERT INTO t2 (pk) SELECT a FROM t1", length=36, parser_state=0x7fa079ca3200, is_com_multi=false, is_next_command=false) at /data/src/10.2/sql/sql_parse.cc:7760
      #23 0x000055a7ee33838d in dispatch_command (command=COM_QUERY, thd=0x7fa068000b00, packet=0x7fa06808d8b1 "INSERT INTO t2 (pk) SELECT a FROM t1", packet_length=36, is_com_multi=false, is_next_command=false) at /data/src/10.2/sql/sql_parse.cc:1832
      #24 0x000055a7ee336ce1 in do_command (thd=0x7fa068000b00) at /data/src/10.2/sql/sql_parse.cc:1385
      #25 0x000055a7ee48ad9b in do_handle_one_connection (connect=0x55a7f1e96640) at /data/src/10.2/sql/sql_connect.cc:1336
      #26 0x000055a7ee48ab06 in handle_one_connection (arg=0x55a7f1e96640) at /data/src/10.2/sql/sql_connect.cc:1241
      #27 0x000055a7eecb900e in pfs_spawn_thread (arg=0x55a7f1eb98f0) at /data/src/10.2/storage/perfschema/pfs.cc:1862
      #28 0x00007fa0814e44a4 in start_thread (arg=0x7fa079ca4700) at pthread_create.c:456
      #29 0x00007fa07fa2cd0f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:97
      

      The failures started happening on 10.2 tree with this commit:

      commit 53dd0e4f75d39972d51cbecb77d82520a3986f3e
      Author: Aleksey Midenkov
      Date:   Tue Jun 25 10:53:33 2019 +0300
       
          MDEV-16222 Assertion `0' failed in row_purge_remove_sec_if_poss_leaf on table with virtual columns and indexes
      

      10.3 and 10.4 are similarly affected.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                serg Sergei Golubchik
                Reporter:
                elenst Elena Stepanova
              • Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                • Created:
                  Updated: