[MDEV-8171] InnoDB: Failing assertion: 1 == UT_LIST_GET_LEN(space->chain) Created: 2015-05-17  Updated: 2015-05-20  Resolved: 2015-05-20

Status: Closed
Project: MariaDB Server
Component/s: Encryption, Storage Engine - InnoDB, Storage Engine - XtraDB
Affects Version/s: 10.1
Fix Version/s: 10.1.5

Type: Bug Priority: Major
Reporter: Elena Stepanova Assignee: Sergei Golubchik
Resolution: Duplicate Votes: 0
Labels: None


 Description   

Note: reproducible on the current 10.1 tree commit 476dfb1603 plus the patch for MDEV-8164 applied locally (either 6f1114b or eefada5, all the same). The stack trace below is from the latter patch on top of 10.1 tree.

2015-05-17 13:36:26 7f716dffc700  InnoDB: Assertion failure in thread 140125153511168 in file fil0fil.cc line 1449
InnoDB: Failing assertion: 1 == UT_LIST_GET_LEN(space->chain)

#5  0x00007fd33add26f0 in abort () from /lib/x86_64-linux-gnu/libc.so.6
#6  0x00007fd33db6e13f in fil_space_get_space (id=839) at /home/buildbot/10.1/storage/xtradb/fil/fil0fil.cc:1449
#7  0x00007fd33db6e38a in fil_space_get_flags (id=839) at /home/buildbot/10.1/storage/xtradb/fil/fil0fil.cc:1554
#8  0x00007fd33db6e3e6 in fil_space_get_zip_size (id=839) at /home/buildbot/10.1/storage/xtradb/fil/fil0fil.cc:1581
#9  0x00007fd33dae4a18 in btr_scrub_start_space (space=839, scrub_data=0x7fd30e7fde28) at /home/buildbot/10.1/storage/xtradb/btr/btr0scrub.cc:826
#10 0x00007fd33db7e2e9 in fil_crypt_space_needs_rotation (state=0x7fd30e7fddc0, key_state=0x7fd30e7fddb0, recheck=0x7fd30e7fdd9b) at /home/buildbot/10.1/storage/xtradb/fil/fil0crypt.cc:1267
#11 0x00007fd33db7e922 in fil_crypt_find_space_to_rotate (key_state=0x7fd30e7fddb0, state=0x7fd30e7fddc0, recheck=0x7fd30e7fdd9b) at /home/buildbot/10.1/storage/xtradb/fil/fil0crypt.cc:1504
#12 0x00007fd33db7fe83 in fil_crypt_thread (arg=0x0) at /home/buildbot/10.1/storage/xtradb/fil/fil0crypt.cc:2142
#13 0x00007fd33cbbeb50 in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0
#14 0x00007fd33ae756dd in clone () from /lib/x86_64-linux-gnu/libc.so.6

RQG grammar enc1.yy

query_init:
        CREATE TABLE IF NOT EXISTS `t1` (`pk` INT PRIMARY KEY) ENGINE=InnoDB; CREATE TABLE IF NOT EXISTS `t2` (`pk` INT PRIMARY KEY) ENGINE=InnoDB;
 
my_table:
        `t1` | `t2`;
 
query:
        SET GLOBAL innodb_encryption_threads = _digit |
        CREATE OR REPLACE TABLE `t3` AS SELECT * FROM my_table ;

RQG command line

perl ./runall-new.pl --grammar=enc1.yy --skip-gendata --threads=1 --queries=100M --duration=300 --basedir=/home/buildbot/10.1 --vardir=/home/buildbot/vardir1 --mysqld=--plugin-load-add=file_key_management.so --mysqld=--file_key_management_filename=/home/buildbot/10.1/mysql-test/std_data/keys.txt --mysqld=--innodb-encrypt-tables=ON

use lp:~elenst/randgen/mariadb-patches for RQG.

You might need to run it several times.

To run the test several times, you can use the following command

perl ./runall-trials.pl --trials=5 --grammar=enc1.yy --skip-gendata --threads=1 --queries=100M --duration=300 --basedir=/home/buildbot/10.1 --vardir=/home/buildbot/vardir1 --mysqld=--plugin-load-add=file_key_management.so --mysqld=--file_key_management_filename=/home/buildbot/10.1/mysql-test/std_data/keys.txt --mysqld=--innodb-encrypt-tables=ON

(adjust trials value as needed).

It will run the test until it fails, or the <trials> number of times, whichever happens first.
To run all <trials> test runs regardless the outcome, add --force to the command line.
It can be useful if you start getting different failures with this test, which might well happen.



 Comments   
Comment by Jan Lindström (Inactive) [ 2015-05-20 ]

Duplicate to MDEV-8182.

Generated at Thu Feb 08 07:25:10 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.