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

InnoDB: Failing assertion: lock->lock_word.load(std::memory_order_relaxed) == X_LOCK_DECR upon server shutdown

Details

    Description

      10.4 2cff807d

      2020-01-03 14:39:50 0x7f9534216700  InnoDB: Assertion failure in file /data/src/10.4/storage/innobase/sync/sync0rw.cc line 255
      InnoDB: Failing assertion: lock->lock_word.load(std::memory_order_relaxed) == X_LOCK_DECR
       
      Query (0x7f94c0011d68): ALTER TABLE t1 CHANGE IF EXISTS b a INT, ALGORITHM=COPY /* QNO 169 CON_ID 12 */
      Connection ID (thread ID): 12
      Status: KILL_SERVER
      

      #6  0x00005653d0678a6a in ut_dbg_assertion_failed (expr=0x5653d0e03f18 "lock->lock_word.load(std::memory_order_relaxed) == X_LOCK_DECR", file=0x5653d0e03e90 "/data/src/10.4/storage/innobase/sync/sync0rw.cc", line=255) at /data/src/10.4/storage/innobase/ut/ut0dbg.cc:60
      #7  0x00005653d061c65f in rw_lock_free_func (lock=0x7f94c00b1e18) at /data/src/10.4/storage/innobase/sync/sync0rw.cc:255
      #8  0x00005653d07d3a7e in pfs_rw_lock_free_func (lock=0x7f94c00b1e18) at /data/src/10.4/storage/innobase/include/sync0rw.ic:617
      #9  0x00005653d07d7d89 in fts_cache_destroy (cache=0x7f94c00b1e18) at /data/src/10.4/storage/innobase/fts/fts0fts.cc:287
      #10 0x00005653d07e2fb4 in fts_t::~fts_t (this=0x7f94c00844d8, __in_chrg=<optimized out>) at /data/src/10.4/storage/innobase/fts/fts0fts.cc:5349
      #11 0x00005653d07e3094 in fts_free (table=0x7f94c043d0a8) at /data/src/10.4/storage/innobase/fts/fts0fts.cc:5386
      #12 0x00005653d059a3e4 in row_drop_ancillary_fts_tables (table=0x7f94c043d0a8, trx=0x7f95218e4830) at /data/src/10.4/storage/innobase/row/row0mysql.cc:3248
      #13 0x00005653d059b7fb in row_drop_table_for_mysql (name=0x7f9534210e80 "test/#sql-73c7_c", trx=0x7f95218e4830, sqlcom=SQLCOM_ALTER_TABLE, create_failed=false, nonatomic=true) at /data/src/10.4/storage/innobase/row/row0mysql.cc:3728
      #14 0x00005653d0413245 in ha_innobase::delete_table (this=0x7f94c0013a10, name=0x7f94c00c7058 "./test/#sql-73c7_c", sqlcom=SQLCOM_ALTER_TABLE) at /data/src/10.4/storage/innobase/handler/ha_innodb.cc:13184
      #15 0x00005653d03fc780 in ha_innobase::delete_table (this=0x7f94c0013a10, name=0x7f94c00c7058 "./test/#sql-73c7_c") at /data/src/10.4/storage/innobase/handler/ha_innodb.cc:13309
      #16 0x00005653d01aed5c in handler::ha_delete_table (this=0x7f94c0013a10, name=0x7f94c00c7058 "./test/#sql-73c7_c") at /data/src/10.4/sql/handler.cc:4695
      #17 0x00005653d00d3783 in THD::rm_temporary_table (this=0x7f94c0000af0, base=0x5653d284a5c0, path=0x7f94c00c7058 "./test/#sql-73c7_c") at /data/src/10.4/sql/temporary_tables.cc:701
      #18 0x00005653d00d5663 in THD::free_tmp_table_share (this=0x7f94c0000af0, share=0x7f94c00c6ac0, delete_table=true) at /data/src/10.4/sql/temporary_tables.cc:1464
      #19 0x00005653d00d35bb in THD::drop_temporary_table (this=0x7f94c0000af0, table=0x7f94c043aa80, is_trans=0x0, delete_table=true) at /data/src/10.4/sql/temporary_tables.cc:664
      #20 0x00005653cff3810b in mysql_alter_table (thd=0x7f94c0000af0, new_db=0x7f94c00052b0, new_name=0x7f94c00056b8, create_info=0x7f9534213d40, table_list=0x7f94c0011eb0, alter_info=0x7f9534213c80, order_num=0, order=0x0, ignore=false) at /data/src/10.4/sql/sql_table.cc:10470
      #21 0x00005653cffcf0cf in Sql_cmd_alter_table::execute (this=0x7f94c00126a8, thd=0x7f94c0000af0) at /data/src/10.4/sql/sql_alter.cc:508
      #22 0x00005653cfe4db75 in mysql_execute_command (thd=0x7f94c0000af0) at /data/src/10.4/sql/sql_parse.cc:6102
      #23 0x00005653cfe53237 in mysql_parse (thd=0x7f94c0000af0, rawbuf=0x7f94c0011d68 "ALTER TABLE t1 CHANGE IF EXISTS b a INT, ALGORITHM=COPY /* QNO 169 CON_ID 12 */", length=79, parser_state=0x7f95342151b0, is_com_multi=false, is_next_command=false) at /data/src/10.4/sql/sql_parse.cc:7901
      #24 0x00005653cfe3e3dc in dispatch_command (command=COM_QUERY, thd=0x7f94c0000af0, packet=0x7f94c037ebf1 "ALTER TABLE t1 CHANGE IF EXISTS b a INT, ALGORITHM=COPY /* QNO 169 CON_ID 12 */ ", packet_length=80, is_com_multi=false, is_next_command=false) at /data/src/10.4/sql/sql_parse.cc:1842
      #25 0x00005653cfe3ca69 in do_command (thd=0x7f94c0000af0) at /data/src/10.4/sql/sql_parse.cc:1360
      #26 0x00005653cffc59df in do_handle_one_connection (connect=0x5653d3484930) at /data/src/10.4/sql/sql_connect.cc:1412
      #27 0x00005653cffc572e in handle_one_connection (arg=0x5653d3484930) at /data/src/10.4/sql/sql_connect.cc:1316
      #28 0x00007f95391754a4 in start_thread (arg=0x7f9534216700) at pthread_create.c:456
      #29 0x00007f95372a9d0f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:97
      

      Reproducible on 10.2-10.4.
      Both debug and non-debug are affected.
      Couldn't reproduce on 10.1 and 10.5.

      To reproduce:

      git clone https://github.com/MariaDB/randgen --branch mdev21329 rqg-mdev21329
      cd rqg-mdev21329
      perl runall-new.pl --basedir=<your basedir>  --grammar=mdev21329.yy --duration=600 --threads=2 --scenario=Restart --skip-gendata --seed=1 --scenario-restart-interval=20 --vardir=/dev/shm/vardir-mdev21329
      

      Remember to set the path to the basedir on the command line.

      The test runs the following two statements concurrently on a table with fulltext index:

          INSERT INTO t1 () VALUES () |
          ALTER TABLE t1 CHANGE IF EXISTS <field> <field> INT, ALGORITHM=COPY;
      

      and restarts the server every 20 seconds.

      Currently it takes a few minutes to fail on my machine, but it can vary on different machines and builds.

      Variations of the assertion representation:

      10.2 ef1e488b

      2020-01-03 14:49:39 0x7f8f59057700  InnoDB: Assertion failure in file /data/src/10.2/storage/innobase/sync/sync0rw.cc line 259
      InnoDB: Failing assertion: lock->lock_word == X_LOCK_DECR
      

      10.3 02e30069

      2020-01-03 14:48:58 0x7fbc04232700  InnoDB: Assertion failure in file /data/src/10.3/storage/innobase/sync/sync0rw.cc line 258
      InnoDB: Failing assertion: my_atomic_load32_explicit(&lock->lock_word, MY_MEMORY_ORDER_RELAXED) == X_LOCK_DECR
      

      Attachments

        Issue Links

          Activity

            elenst Elena Stepanova created issue -
            elenst Elena Stepanova made changes -
            Field Original Value New Value
            Component/s Full-text Search [ 10104 ]
            Fix Version/s 10.2 [ 14601 ]
            Fix Version/s 10.3 [ 22126 ]
            Affects Version/s 10.2 [ 14601 ]
            Affects Version/s 10.3 [ 22126 ]
            Description _Still work in progress, very poorly reproducible_

            {noformat:title=10.4 89ae01fd}
            2019-12-16 18:32:00 0x7fc8fc052700 InnoDB: Assertion failure in file /data/src/10.4/storage/innobase/sync/sync0rw.cc line 255
            InnoDB: Failing assertion: lock->lock_word.load(std::memory_order_relaxed) == X_LOCK_DECR

            #6 0x0000562280367b1c in ut_dbg_assertion_failed (expr=0x562280ad3cd8 "lock->lock_word.load(std::memory_order_relaxed) == X_LOCK_DECR", file=0x562280ad3c50 "/data/src/10.4/storage/innobase/sync/sync0rw.cc", line=255) at /data/src/10.4/storage/innobase/ut/ut0dbg.cc:60
            #7 0x000056228030b89b in rw_lock_free_func (lock=0x7fc88414aa38) at /data/src/10.4/storage/innobase/sync/sync0rw.cc:255
            #8 0x00005622804c220e in pfs_rw_lock_free_func (lock=0x7fc88414aa38) at /data/src/10.4/storage/innobase/include/sync0rw.ic:617
            #9 0x00005622804c6527 in fts_cache_destroy (cache=0x7fc88414aa38) at /data/src/10.4/storage/innobase/fts/fts0fts.cc:287
            #10 0x00005622804d174e in fts_t::~fts_t (this=0x7fc884170628, __in_chrg=<optimized out>) at /data/src/10.4/storage/innobase/fts/fts0fts.cc:5349
            #11 0x00005622804d182e in fts_free (table=0x7fc8841338c8) at /data/src/10.4/storage/innobase/fts/fts0fts.cc:5386
            #12 0x0000562280289c3c in row_drop_ancillary_fts_tables (table=0x7fc8841338c8, trx=0x7fc8e8185268) at /data/src/10.4/storage/innobase/row/row0mysql.cc:3248
            #13 0x000056228028b053 in row_drop_table_for_mysql (name=0x7fc8fc04cea0 "test/#sql-673b_e", trx=0x7fc8e8185268, sqlcom=SQLCOM_ALTER_TABLE, create_failed=false, nonatomic=true) at /data/src/10.4/storage/innobase/row/row0mysql.cc:3728
            #14 0x00005622801057a5 in ha_innobase::delete_table (this=0x7fc884489a28, name=0x7fc8840fddb8 "./test/#sql-673b_e", sqlcom=SQLCOM_ALTER_TABLE) at /data/src/10.4/storage/innobase/handler/ha_innodb.cc:13170
            #15 0x00005622800eef22 in ha_innobase::delete_table (this=0x7fc884489a28, name=0x7fc8840fddb8 "./test/#sql-673b_e") at /data/src/10.4/storage/innobase/handler/ha_innodb.cc:13295
            #16 0x000056227fea152a in handler::ha_delete_table (this=0x7fc884489a28, name=0x7fc8840fddb8 "./test/#sql-673b_e") at /data/src/10.4/sql/handler.cc:4694
            #17 0x000056227fdc64ed in THD::rm_temporary_table (this=0x7fc884000af0, base=0x562283828180, path=0x7fc8840fddb8 "./test/#sql-673b_e") at /data/src/10.4/sql/temporary_tables.cc:694
            #18 0x000056227fdc83cd in THD::free_tmp_table_share (this=0x7fc884000af0, share=0x7fc8840fd820, delete_table=true) at /data/src/10.4/sql/temporary_tables.cc:1457
            #19 0x000056227fdc6325 in THD::drop_temporary_table (this=0x7fc884000af0, table=0x7fc8841328c0, is_trans=0x0, delete_table=true) at /data/src/10.4/sql/temporary_tables.cc:657
            #20 0x000056227fc2b4ec in mysql_alter_table (thd=0x7fc884000af0, new_db=0x7fc8840052a8, new_name=0x7fc8840056b0, create_info=0x7fc8fc04fd60, table_list=0x7fc884011f68, alter_info=0x7fc8fc04fca0, order_num=0, order=0x0, ignore=false) at /data/src/10.4/sql/sql_table.cc:10420
            #21 0x000056227fcc1fc1 in Sql_cmd_alter_table::execute (this=0x7fc884012b68, thd=0x7fc884000af0) at /data/src/10.4/sql/sql_alter.cc:508
            #22 0x000056227fb416ec in mysql_execute_command (thd=0x7fc884000af0) at /data/src/10.4/sql/sql_parse.cc:6099
            #23 0x000056227fb46daf in mysql_parse (thd=0x7fc884000af0, rawbuf=0x7fc884011d08 "ALTER TABLE `table300_innodb_int_autoinc` /*!100301 */ CHANGE IF EXISTS p n YEAR /*!100201 CHECK (w <= 3) */, ALGORITHM=COPY /* QNO 172 CON_ID 14 */", length=149, parser_state=0x7fc8fc0511c0, is_com_multi=false, is_next_command=false) at /data/src/10.4/sql/sql_parse.cc:7898
            #24 0x000056227fb31f8c in dispatch_command (command=COM_QUERY, thd=0x7fc884000af0, packet=0x7fc884008241 "ALTER TABLE `table300_innodb_int_autoinc` /*!100301 */ CHANGE IF EXISTS p n YEAR /*!100201 CHECK (w <= 3) */, ALGORITHM=COPY /* QNO 172 CON_ID 14 */ ", packet_length=150, is_com_multi=false, is_next_command=false) at /data/src/10.4/sql/sql_parse.cc:1842
            #25 0x000056227fb30619 in do_command (thd=0x7fc884000af0) at /data/src/10.4/sql/sql_parse.cc:1360
            #26 0x000056227fcb88d1 in do_handle_one_connection (connect=0x56228376bdb0) at /data/src/10.4/sql/sql_connect.cc:1412
            #27 0x000056227fcb8620 in handle_one_connection (arg=0x56228376bdb0) at /data/src/10.4/sql/sql_connect.cc:1316
            #28 0x00007fc8ff48f4a4 in start_thread (arg=0x7fc8fc052700) at pthread_create.c:456
            #29 0x00007fc8fd9d6d0f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:97
            {noformat}

            {noformat:title=rqg-ment a95fbb8b}
            perl runall-trials.pl --output="srv_force_recovery >= SRV_FORCE_NO_BACKGROUND|lock->lock_word.load" --trials=50 --grammar=/data/tmp/xlock1.yy --duration=350 --threads=6 --filter=/data/src/mariadb-toolbox/travis/10.4-combo-filter-asan.ff --scenario=Restart --gendata=conf/engines/innodb/full_text_search.zz --basedir=/data/bld/10.4 --seed=time --short-column-names --mysqld=--max-statement-time=15 --mysqld=--lock-wait-timeout=10 --mysqld=--loose-innodb-lock-wait-timeout=5 --mysqld=--loose-debug_assert_on_not_freed_memory=0 --reporters=Backtrace,ErrorLog,Deadlock --mtr-build-thread=55 --vardir=/home/elenst/logs/xlock13a
            {noformat}

            {noformat:title=xlock1.yy}
            alt_alter:
            ALTER TABLE { $my_last_table = 't'.$prng->int(1,10) } alt_wait_optional;

            alt_alter_list_with_optional_order_by:
            ;

            alt_col_name_and_definition_list:
            ;

            alt_create:
            CREATE OR REPLACE TEMPORARY TABLE { $my_last_table = 't'.$prng->int(1,10) } ();

            alt_create_or_replace:
            CREATE OR REPLACE TEMPORARY TABLE { $my_last_table = 't'.$prng->int(1,10) } ();

            alt_flush:
            FLUSH TABLES;

            alt_ignore_optional:
            ;

            alt_online_optional:
            ;

            alt_optimize:
            OPTIMIZE TABLE { $my_last_table = 't'.$prng->int(1,10) };

            alt_query:
            OPTIMIZE TABLE { $my_last_table = 't'.$prng->int(1,10) } ;

            alt_rename_multi:
            DROP TABLE IF EXISTS { $tmp_tbl= 'tmp_rename_'.abs($$) } ; RENAME TABLE { $my_last_table = 't'.$prng->int(1,10) } TO $tmp_tbl, $tmp_tbl TO { $my_last_table };

            alt_table_flags:
            ;

            alt_table_name:
            { $my_last_table = 't'.$prng->int(1,10) };

            alt_temporary:
            TEMPORARY;

            alt_transaction:
            COMMIT |
            ROLLBACK;

            alt_wait_optional:
            |
            /*!100301 WAIT _digit */;

            alttcol_add_column:
            ADD alttcol_column_word alttcol_if_not_exists ( alttcol_add_list );

            alttcol_add_definition:
            BIT alttcol_optional_auto_increment alttcol_check_constraint |
            alttcol_int_type alttcol_zerofill alttcol_optional_auto_increment alttcol_check_constraint |
            SERIAL alttcol_check_constraint |
            YEAR alttcol_check_constraint |
            SET('foo','bar') alttcol_check_constraint;

            alttcol_add_list:
            alttcol_col_name alttcol_add_definition |
            alttcol_col_name alttcol_add_definition, alttcol_add_list;

            alttcol_algorithm:
            , ALGORITHM=COPY |
            /*!100307 , ALGORITHM=NOCOPY */ |
            /*!100307 , ALGORITHM=INSTANT */;

            alttcol_alter_column:
            ALTER alttcol_column_word /*!100305 IF EXISTS */ alttcol_col_name DROP DEFAULT;

            alttcol_change_column:
            CHANGE alttcol_column_word IF EXISTS alttcol_col_name alttcol_col_name alttcol_add_definition alttcol_location;

            alttcol_check_constraint:
            |
            /*!100201 CHECK (alttcol_check_constraint_expression) */;

            alttcol_check_constraint_expression:
            _letter alttcol_operator _letter |
            _letter alttcol_operator _digit;

            alttcol_col_name:
            _letter;

            alttcol_column_word:
            ;

            alttcol_default_char_val:
            NULL |
            '';

            alttcol_default_int_or_auto_increment:
            alttcol_optional_auto_increment;

            alttcol_default_or_current_timestamp_val:
            '1970-01-01' |
            CURRENT_TIMESTAMP |
            0;

            alttcol_enum_type:
            SET('foo','bar');

            alttcol_geo_optional_default:
            |
            /*!100201 DEFAULT ST_GEOMFROMTEXT('Point(1 1)') */;

            alttcol_geo_type:
            POINT |
            POLYGON |
            MULTILINESTRING |
            MULTIPOLYGON |
            GEOMETRYCOLLECTION |
            GEOMETRY;

            alttcol_if_exists:
            IF EXISTS;

            alttcol_if_not_exists:
            |
            IF NOT EXISTS;

            alttcol_ignore:
            |
            IGNORE;

            alttcol_int_type:
            MEDIUMINT |
            BIGINT;

            alttcol_invisible:
            ;

            alttcol_item:
            CHANGE IF EXISTS _letter _letter alttcol_add_definition alttcol_location;

            alttcol_item_alg_lock:
            alttcol_item alttcol_algorithm alttcol_lock;

            alttcol_list:
            CHANGE IF EXISTS _letter _letter alttcol_add_definition alttcol_location alttcol_algorithm alttcol_lock ;
            # CHANGE IF EXISTS _letter _letter alttcol_add_definition alttcol_location alttcol_algorithm alttcol_lock, alttcol_list;

            alttcol_list_with_optional_order_by:
            alttcol_list alttcol_order_by;

            alttcol_location:
            |
            FIRST;

            alttcol_lock:
            |
            , LOCK=NONE;

            alttcol_modify_column:
            MODIFY alttcol_column_word IF EXISTS alttcol_col_name alttcol_add_definition alttcol_location;

            alttcol_null:
            ;

            alttcol_num_type:
            DECIMAL |
            FLOAT |
            DOUBLE;

            alttcol_online:
            ;

            alttcol_operator:
            != |
            LIKE |
            <= |
            > |
            >=;

            alttcol_optional_auto_increment:
            AUTO_INCREMENT |
            SERIAL DEFAULT VALUE;

            alttcol_optional_default:
            ;

            alttcol_optional_default_char:
            |
            DEFAULT alttcol_default_char_val;

            alttcol_optional_default_or_current_timestamp:
            |
            DEFAULT alttcol_default_or_current_timestamp_val;

            alttcol_order_by:
            ;

            alttcol_query:
            ALTER alttcol_ignore TABLE _table /*!100301 */ alttcol_list alttcol_order_by;

            alttcol_temporal_type:
            YEAR;

            alttcol_text_type:
            BLOB |
            TEXT |
            CHAR |
            VARCHAR(_smallint_unsigned) |
            BINARY |
            VARBINARY(_smallint_unsigned);

            alttcol_timestamp_type:
            DATETIME;

            alttcol_unsigned:
            ;

            alttcol_wait:
            ;

            alttcol_zerofill:
            |
            ZEROFILL;

            bulk_insert_load:
            INSERT INTO _table SELECT * FROM _table;

            bulk_replace_ignore:
            REPLACE |
            IGNORE;

            create_drop_index:
            ;

            delete:
            ;

            expression:
            > 1 |
            != 0;

            insert:
            INSERT INTO _table ( _field_no_pk ) VALUES ( _english );

            limit_clause:
            LIMIT {$prng->int(10,30)};

            natural_language_search:
            ;

            order_clause:
            ;

            query:
            # Can be removed, but...
            INSERT INTO _table ( _field_no_pk ) VALUES ( _english ) |
            OPTIMIZE TABLE { $my_last_table = 't'.$prng->int(1,10) } |
            ALTER alttcol_ignore TABLE _table /*!100301 */ alttcol_list ;

            query_expansion_search:
            SELECT _field_indexed[invariant], AS SCORE FROM _table LIMIT {$prng->int(10,30)};

            query_expansion_search_condition:
            ;

            query_init:
            alt_create_or_replace ; alt_create_or_replace ; alt_create_or_replace ; alt_create_or_replace ; alt_create_or_replace ; alt_create_or_replace ; alt_create_or_replace ; alt_create_or_replace ;

            select:
            query_expansion_search;

            transaction:
            START TRANSACTION |
            COMMIT;
            {noformat}

            _Note: most of rules in this grammar are unused, it's not cleaned up_
            {noformat:title=10.4 2cff807d}
            2020-01-03 14:39:50 0x7f9534216700 InnoDB: Assertion failure in file /data/src/10.4/storage/innobase/sync/sync0rw.cc line 255
            InnoDB: Failing assertion: lock->lock_word.load(std::memory_order_relaxed) == X_LOCK_DECR

            Query (0x7f94c0011d68): ALTER TABLE t1 CHANGE IF EXISTS b a INT, ALGORITHM=COPY /* QNO 169 CON_ID 12 */
            Connection ID (thread ID): 12
            Status: KILL_SERVER
            {noformat}
            {noformat}
            #6 0x00005653d0678a6a in ut_dbg_assertion_failed (expr=0x5653d0e03f18 "lock->lock_word.load(std::memory_order_relaxed) == X_LOCK_DECR", file=0x5653d0e03e90 "/data/src/10.4/storage/innobase/sync/sync0rw.cc", line=255) at /data/src/10.4/storage/innobase/ut/ut0dbg.cc:60
            #7 0x00005653d061c65f in rw_lock_free_func (lock=0x7f94c00b1e18) at /data/src/10.4/storage/innobase/sync/sync0rw.cc:255
            #8 0x00005653d07d3a7e in pfs_rw_lock_free_func (lock=0x7f94c00b1e18) at /data/src/10.4/storage/innobase/include/sync0rw.ic:617
            #9 0x00005653d07d7d89 in fts_cache_destroy (cache=0x7f94c00b1e18) at /data/src/10.4/storage/innobase/fts/fts0fts.cc:287
            #10 0x00005653d07e2fb4 in fts_t::~fts_t (this=0x7f94c00844d8, __in_chrg=<optimized out>) at /data/src/10.4/storage/innobase/fts/fts0fts.cc:5349
            #11 0x00005653d07e3094 in fts_free (table=0x7f94c043d0a8) at /data/src/10.4/storage/innobase/fts/fts0fts.cc:5386
            #12 0x00005653d059a3e4 in row_drop_ancillary_fts_tables (table=0x7f94c043d0a8, trx=0x7f95218e4830) at /data/src/10.4/storage/innobase/row/row0mysql.cc:3248
            #13 0x00005653d059b7fb in row_drop_table_for_mysql (name=0x7f9534210e80 "test/#sql-73c7_c", trx=0x7f95218e4830, sqlcom=SQLCOM_ALTER_TABLE, create_failed=false, nonatomic=true) at /data/src/10.4/storage/innobase/row/row0mysql.cc:3728
            #14 0x00005653d0413245 in ha_innobase::delete_table (this=0x7f94c0013a10, name=0x7f94c00c7058 "./test/#sql-73c7_c", sqlcom=SQLCOM_ALTER_TABLE) at /data/src/10.4/storage/innobase/handler/ha_innodb.cc:13184
            #15 0x00005653d03fc780 in ha_innobase::delete_table (this=0x7f94c0013a10, name=0x7f94c00c7058 "./test/#sql-73c7_c") at /data/src/10.4/storage/innobase/handler/ha_innodb.cc:13309
            #16 0x00005653d01aed5c in handler::ha_delete_table (this=0x7f94c0013a10, name=0x7f94c00c7058 "./test/#sql-73c7_c") at /data/src/10.4/sql/handler.cc:4695
            #17 0x00005653d00d3783 in THD::rm_temporary_table (this=0x7f94c0000af0, base=0x5653d284a5c0, path=0x7f94c00c7058 "./test/#sql-73c7_c") at /data/src/10.4/sql/temporary_tables.cc:701
            #18 0x00005653d00d5663 in THD::free_tmp_table_share (this=0x7f94c0000af0, share=0x7f94c00c6ac0, delete_table=true) at /data/src/10.4/sql/temporary_tables.cc:1464
            #19 0x00005653d00d35bb in THD::drop_temporary_table (this=0x7f94c0000af0, table=0x7f94c043aa80, is_trans=0x0, delete_table=true) at /data/src/10.4/sql/temporary_tables.cc:664
            #20 0x00005653cff3810b in mysql_alter_table (thd=0x7f94c0000af0, new_db=0x7f94c00052b0, new_name=0x7f94c00056b8, create_info=0x7f9534213d40, table_list=0x7f94c0011eb0, alter_info=0x7f9534213c80, order_num=0, order=0x0, ignore=false) at /data/src/10.4/sql/sql_table.cc:10470
            #21 0x00005653cffcf0cf in Sql_cmd_alter_table::execute (this=0x7f94c00126a8, thd=0x7f94c0000af0) at /data/src/10.4/sql/sql_alter.cc:508
            #22 0x00005653cfe4db75 in mysql_execute_command (thd=0x7f94c0000af0) at /data/src/10.4/sql/sql_parse.cc:6102
            #23 0x00005653cfe53237 in mysql_parse (thd=0x7f94c0000af0, rawbuf=0x7f94c0011d68 "ALTER TABLE t1 CHANGE IF EXISTS b a INT, ALGORITHM=COPY /* QNO 169 CON_ID 12 */", length=79, parser_state=0x7f95342151b0, is_com_multi=false, is_next_command=false) at /data/src/10.4/sql/sql_parse.cc:7901
            #24 0x00005653cfe3e3dc in dispatch_command (command=COM_QUERY, thd=0x7f94c0000af0, packet=0x7f94c037ebf1 "ALTER TABLE t1 CHANGE IF EXISTS b a INT, ALGORITHM=COPY /* QNO 169 CON_ID 12 */ ", packet_length=80, is_com_multi=false, is_next_command=false) at /data/src/10.4/sql/sql_parse.cc:1842
            #25 0x00005653cfe3ca69 in do_command (thd=0x7f94c0000af0) at /data/src/10.4/sql/sql_parse.cc:1360
            #26 0x00005653cffc59df in do_handle_one_connection (connect=0x5653d3484930) at /data/src/10.4/sql/sql_connect.cc:1412
            #27 0x00005653cffc572e in handle_one_connection (arg=0x5653d3484930) at /data/src/10.4/sql/sql_connect.cc:1316
            #28 0x00007f95391754a4 in start_thread (arg=0x7f9534216700) at pthread_create.c:456
            #29 0x00007f95372a9d0f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:97
            {noformat}

            Reproducible on 10.2-10.4.
            Both debug and non-debug are affected.
            Couldn't reproduce on 10.1 and 10.5.

            To reproduce:
            {noformat}
            git clone https://github.com/MariaDB/randgen --branch mdev21329 rqg-mdev21329
            cd rqg-mdev21329
            perl runall-new.pl --basedir=<your basedir> --grammar=mdev21329.yy --duration=600 --threads=2 --scenario=Restart --skip-gendata --seed=1 --scenario-restart-interval=20 --vardir=/dev/shm/vardir-mdev21329
            {noformat}
            Remember to set the path to the basedir on the command line.

            The test runs the following two statements concurrently on a table with fulltext index:
            {noformat}
                INSERT INTO t1 () VALUES () |
                ALTER TABLE t1 CHANGE IF EXISTS <field> <field> INT, ALGORITHM=COPY;
            {noformat}
            and restarts the server every 20 seconds.

            Currently it takes a few minutes to fail on my machine, but it can vary on different machines and builds.

            Variations of the assertion representation:
            {noformat:title=10.2 ef1e488b}
            2020-01-03 14:49:39 0x7f8f59057700 InnoDB: Assertion failure in file /data/src/10.2/storage/innobase/sync/sync0rw.cc line 259
            InnoDB: Failing assertion: lock->lock_word == X_LOCK_DECR
            {noformat}
            {noformat:title=10.3 02e30069}
            2020-01-03 14:48:58 0x7fbc04232700 InnoDB: Assertion failure in file /data/src/10.3/storage/innobase/sync/sync0rw.cc line 258
            InnoDB: Failing assertion: my_atomic_load32_explicit(&lock->lock_word, MY_MEMORY_ORDER_RELAXED) == X_LOCK_DECR
            {noformat}
            Summary InnoDB: Failing assertion: lock->lock_word.load(std::memory_order_relaxed) == X_LOCK_DECR InnoDB: Failing assertion: lock->lock_word.load(std::memory_order_relaxed) == X_LOCK_DECR upon server shutdown
            elenst Elena Stepanova made changes -
            Assignee Elena Stepanova [ elenst ] Marko Mäkelä [ marko ]
            marko Marko Mäkelä made changes -
            Assignee Marko Mäkelä [ marko ] Thirunarayanan Balathandayuthapani [ thiru ]
            elenst Elena Stepanova made changes -
            Component/s Tests [ 10800 ]
            marko Marko Mäkelä made changes -
            Labels need_rr
            marko Marko Mäkelä made changes -
            marko Marko Mäkelä made changes -
            elenst Elena Stepanova made changes -
            Labels need_rr rr-profile
            thiru Thirunarayanan Balathandayuthapani made changes -
            Status Open [ 1 ] In Progress [ 3 ]
            thiru Thirunarayanan Balathandayuthapani made changes -
            Assignee Thirunarayanan Balathandayuthapani [ thiru ] Marko Mäkelä [ marko ]
            Status In Progress [ 3 ] In Review [ 10002 ]
            marko Marko Mäkelä made changes -
            Assignee Marko Mäkelä [ marko ] Thirunarayanan Balathandayuthapani [ thiru ]
            Status In Review [ 10002 ] Stalled [ 10000 ]
            thiru Thirunarayanan Balathandayuthapani made changes -
            Fix Version/s 10.2.35 [ 25022 ]
            Fix Version/s 10.3.26 [ 25021 ]
            Fix Version/s 10.4.16 [ 25020 ]
            Fix Version/s 10.2 [ 14601 ]
            Fix Version/s 10.3 [ 22126 ]
            Fix Version/s 10.4 [ 22408 ]
            Resolution Fixed [ 1 ]
            Status Stalled [ 10000 ] Closed [ 6 ]
            thiru Thirunarayanan Balathandayuthapani made changes -
            Fix Version/s 10.5.7 [ 25019 ]
            thiru Thirunarayanan Balathandayuthapani made changes -
            serg Sergei Golubchik made changes -
            Workflow MariaDB v3 [ 102112 ] MariaDB v4 [ 157107 ]

            People

              thiru Thirunarayanan Balathandayuthapani
              elenst Elena Stepanova
              Votes:
              0 Vote for this issue
              Watchers:
              5 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.