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

Assertion: trx->start_file != 0 fails in trx0trx.cc on killing CREATE TABLE query

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 10.0.5
    • Component/s: None
    • Labels:
      None

      Description

      Version: '10.0.3-MariaDB-debug-log' 
      2013-07-22 20:42:19 7fbe38224700  InnoDB: Assertion failure in thread 140454962284288 in file trx0trx.cc line 701
      InnoDB: Failing assertion: trx->start_file != 0
      
      #5  0x00007fbe4d127b8b in __GI_abort () at abort.c:91
      #6  0x0000000000cacfb7 in trx_start_low (trx=0x7fbdf0261858) at 10.0-serg/storage/innobase/trx/trx0trx.cc:701
      #7  0x0000000000cb00e2 in trx_start_if_not_started_xa_low (trx=0x7fbdf0261858) at 10.0-serg/storage/innobase/trx/trx0trx.cc:2057
      #8  0x0000000000cafa56 in trx_prepare_for_mysql (trx=0x7fbdf0261858) at 10.0-serg/storage/innobase/trx/trx0trx.cc:1875
      #9  0x0000000000b5fde5 in innobase_xa_prepare (hton=0x32913f0, thd=0x3f32ec0, prepare_trx=false) at 10.0-serg/storage/innobase/handler/ha_innodb.cc:13729
      #10 0x0000000000813bdc in ha_commit_trans (thd=0x3f32ec0, all=false) at 10.0-serg/sql/handler.cc:1375
      #11 0x000000000075f7ec in trans_commit_stmt (thd=0x3f32ec0) at 10.0-serg/sql/transaction.cc:336
      #12 0x000000000063b374 in mysql_execute_command (thd=0x3f32ec0) at 10.0-serg/sql/sql_parse.cc:5012
      #13 0x000000000063e206 in mysql_parse (thd=0x3f32ec0, rawbuf=0x7fbdf0005158 "CREATE TABLE `x` ( `m` INTEGER, `n` INTEGER NOT NULL, KEY (`n`) ) ENGINE = InnoDB PARTITION BY RANGE ( `m` ) SUBPARTITION BY HASH ( `m` ) SUBPARTITIONS 8 ( PARTITION p0 VALUES LESS THAN ( 5 ), PARTITI"..., length=251, parser_state=0x7fbe38223510) at 10.0-serg/sql/sql_parse.cc:6264
      #14 0x000000000063103e in dispatch_command (command=COM_QUERY, thd=0x3f32ec0, packet=0x3f38161 "CREATE TABLE `x` ( `m` INTEGER, `n` INTEGER NOT NULL, KEY (`n`) ) ENGINE = InnoDB PARTITION BY RANGE ( `m` ) SUBPARTITION BY HASH ( `m` ) SUBPARTITIONS 8 ( PARTITION p0 VALUES LESS THAN ( 5 ), PARTITI"..., packet_length=252) at 10.0-serg/sql/sql_parse.cc:1277
      #15 0x0000000000630478 in do_command (thd=0x3f32ec0) at 10.0-serg/sql/sql_parse.cc:983
      #16 0x000000000074b985 in do_handle_one_connection (thd_arg=0x3f32ec0) at 10.0-serg/sql/sql_connect.cc:1379
      #17 0x000000000074b6d8 in handle_one_connection (arg=0x3f32ec0) at 10.0-serg/sql/sql_connect.cc:1293
      #18 0x00000000009d55db in pfs_spawn_thread (arg=0x3edb7e0) at 10.0-serg/storage/perfschema/pfs.cc:1853
      #19 0x00007fbe4deede9a in start_thread (arg=0x7fbe38224700) at pthread_create.c:308
      #20 0x00007fbe4d1e1cbd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
      
      Query (0x7fbdf0005158): CREATE TABLE `x` ( `m` INTEGER, `n` INTEGER NOT NULL, KEY (`n`) ) ENGINE = InnoDB PARTITION BY RANGE ( `m` ) SUBPARTITION BY HASH ( `m` ) SUBPARTITIONS 8 ( PARTITION p0 VALUES LESS THAN ( 5 ), PARTITION p1 VALUES LESS THAN MAXVALUE ) SELECT * FROM `A`
      Connection ID (thread ID): 7
      Status: KILL_QUERY
      

      bzr version-info

      revision-id: sergii@pisem.net-20130721172420-v59x91dxs0bplh55
      revno: 3776
      branch-nick: 10.0-serg
      

      Also reproducible on 10.0-monty.
      Could not reproduce on 10.0, 10.0-base, mysql-5.6, mysql-5.6.10.

      RQG grammar (1.yy):

      query_init:
      	SET binlog_format = ROW ; CREATE TABLE IF NOT EXISTS `A` (i INT, j INT) ENGINE=InnoDB;
      
      query:
      	CREATE TABLE `x` (
      		`m` INTEGER,
      		`n` INTEGER NOT NULL,
      		KEY (`n`)
      	) ENGINE = InnoDB PARTITION BY RANGE ( `m` ) SUBPARTITION BY HASH ( `m` ) SUBPARTITIONS 8 (
      		PARTITION p0 VALUES LESS THAN ( 5 ),
      		PARTITION p1 VALUES LESS THAN MAXVALUE 
         ) SELECT * FROM `A` 
        ;  DROP TABLE `x` ;
      
      thread2:
      	KILL QUERY CONNECTION_ID()-1 { sleep 1; '' };
      

      RQG command line (assuming that the server is started on port 3306. Important: start the server with --log-bin)

      perl ./gentest.pl --threads=2 --duration=200 --queries=100M --grammar=1.yy --dsn='dbi:mysql:host=127.0.0.1:port=3306:user=root:database=test'
      

        Gliffy Diagrams

          Attachments

            Issue Links

              Activity

              Hide
              jplindst Jan Lindström added a comment -

              Debug assert, most probable merge error.

              Show
              jplindst Jan Lindström added a comment - Debug assert, most probable merge error.

                People

                • Assignee:
                  jplindst Jan Lindström
                  Reporter:
                  elenst Elena Stepanova
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  3 Start watching this issue

                  Dates

                  • Created:
                    Updated:
                    Resolved:

                    Time Tracking

                    Estimated:
                    Original Estimate - Not Specified
                    Not Specified
                    Remaining:
                    Time Spent - 4 hours Remaining Estimate - 2 hours
                    2h
                    Logged:
                    Time Spent - 4 hours Remaining Estimate - 2 hours
                    4h