Details
-
Bug
-
Status: Open (View Workflow)
-
Major
-
Resolution: Unresolved
-
10.5, 10.6, 10.7, 10.8, 10.9, 10.10, 10.11, 11.0
-
None
Description
Note: Previous versions may be affected as well, but since the datadir/backups are initially from 10.5, I cannot check earlier versions.
10.5 ee584137 |
mysqld: /data/src/10.5/storage/innobase/trx/trx0rseg.cc:539: void trx_rseg_mem_restore(trx_rseg_t*, trx_id_t&, mtr_t*): Assertion `purge <= 1' failed.
|
200707 19:53:24 [ERROR] mysqld got signal 6 ;
|
 |
#7 0x00007f60ee164f12 in __GI___assert_fail (assertion=0x55f38a18b508 "purge <= 1", file=0x55f38a18b2d8 "/data/src/10.5/storage/innobase/trx/trx0rseg.cc", line=539, function=0x55f38a18cb60 <trx_rseg_mem_restore(trx_rseg_t*, unsigned long&, mtr_t*)::__PRETTY_FUNCTION__> "void trx_rseg_mem_restore(trx_rseg_t*, trx_id_t&, mtr_t*)") at assert.c:101
|
#8 0x000055f389a4cb9f in trx_rseg_mem_restore (rseg=0x55f3907ee5c8, max_trx_id=@0x7fff38bdbae0: 1735590241781178988, mtr=0x7fff38bdbbb0) at /data/src/10.5/storage/innobase/trx/trx0rseg.cc:539
|
#9 0x000055f389a4d080 in trx_rseg_array_init () at /data/src/10.5/storage/innobase/trx/trx0rseg.cc:617
|
#10 0x000055f389a5455b in trx_lists_init_at_db_start () at /data/src/10.5/storage/innobase/trx/trx0trx.cc:751
|
#11 0x000055f3899ffb73 in srv_start (create_new_db=false) at /data/src/10.5/storage/innobase/srv/srv0start.cc:1556
|
#12 0x000055f3897c9d84 in innodb_init (p=0x55f38d2e1718) at /data/src/10.5/storage/innobase/handler/ha_innodb.cc:4001
|
#13 0x000055f38936ef9b in ha_initialize_handlerton (plugin=0x55f38d211ff0) at /data/src/10.5/sql/handler.cc:645
|
#14 0x000055f389030ce3 in plugin_initialize (tmp_root=0x7fff38bdec50, plugin=0x55f38d211ff0, argc=0x55f38ab94c00 <remaining_argc>, argv=0x55f38d1d1258, options_only=false) at /data/src/10.5/sql/sql_plugin.cc:1459
|
#15 0x000055f389031abb in plugin_init (argc=0x55f38ab94c00 <remaining_argc>, argv=0x55f38d1d1258, flags=0) at /data/src/10.5/sql/sql_plugin.cc:1751
|
#16 0x000055f388ed15af in init_server_components () at /data/src/10.5/sql/mysqld.cc:4909
|
#17 0x000055f388ed27d1 in mysqld_main (argc=24, argv=0x55f38d1d1258) at /data/src/10.5/sql/mysqld.cc:5492
|
#18 0x000055f388ec7900 in main (argc=23, argv=0x7fff38be0588) at /data/src/10.5/sql/main.cc:25
|
To reproduce the assertion failure itself:
- download and unpack mdev23115_prepared_datadir.tar.gz;
- start 10.5 debug server on this datadir with
--innodb-compression-algorithm=zlib --innodb-page-size=8K --innodb-encrypt-tables --innodb-encrypt-log --innodb-encryption-threads=4 --aria-encrypt-tables=1 --encrypt-tmp-disk-tables=1 --encrypt-binlog --file-key-management --file-key-management-filename=`pwd`/mysql-test/std_data/keys.txt --plugin-load-add=file_key_management --innodb-buffer-pool-size=512M
(the path to encryption keys assumes you are starting the server from inside the basedir/sourcedir, otherwise please modify accordingly).
Non-debug build doesn't crash.
To reproduce starting from unprepared backups:
- download and unpack ftp://ftp.askmonty.org/public/mdev23115.tar.gz. It will unpack into mdev23115 folder containing
drwx------ 4096 backup_before_prepare_0
drwx------ 4096 backup_before_prepare_1
drwx------ 4096 backup_before_prepare_2
drwx------ 4096 backup_before_prepare_3
drwx------ 4096 backup_before_prepare_4
drwx------ 4096 backup_before_prepare_5
drwx------ 4096 backup_before_prepare_6
drwx------ 4096 backup_before_prepare_7
drwx------ 4096 backup_before_prepare_8
drwx------ 4096 backup_before_prepare_9
drwx------ 4096 data
-rw-r--r-- 23036 mbackup_backup_0.log
-rw-r--r-- 23038 mbackup_backup_1.log
-rw-r--r-- 23088 mbackup_backup_2.log
-rw-r--r-- 23088 mbackup_backup_3.log
-rw-r--r-- 23137 mbackup_backup_4.log
-rw-r--r-- 23137 mbackup_backup_5.log
-rw-r--r-- 23145 mbackup_backup_6.log
-rw-r--r-- 23097 mbackup_backup_7.log
-rw-r--r-- 23097 mbackup_backup_8.log
-rw-r--r-- 23146 mbackup_backup_9.log
-rw-r--r-- 3205 mbackup_prepare_0.log
-rw-r--r-- 29203 mbackup_prepare_1.log
-rw-r--r-- 29204 mbackup_prepare_2.log
-rw-r--r-- 29204 mbackup_prepare_3.log
-rw-r--r-- 29204 mbackup_prepare_4.log
-rw-r--r-- 29204 mbackup_prepare_5.log
-rw-r--r-- 29205 mbackup_prepare_6.log
-rw-r--r-- 29206 mbackup_prepare_7.log
-rw-r--r-- 29206 mbackup_prepare_8.log
-rw-r--r-- 29206 mbackup_prepare_9.log
-rw-r--r-- 23485 mbackup_restore_.log
-rw-r--r-- 178765 mysql.err_orig
-rw-r----- 4792415 mysql.log
the logs and the data directory are the same as in the JIRA attachments;
- edit cnf files within mdev23115/backup_before_prepare_N folders to point at the right keys.txt file (the one in mysql-test/std_data) and at the file key management plugin;
- run consequently
bin/mariabackup --prepare --use-memory=1073741824 --innodb-file-io-threads=1 --target-dir=`pwd`/mdev23115/backup_before_prepare_0
bin/mariabackup --prepare --use-memory=1073741824 --innodb-file-io-threads=1 --target-dir=`pwd`/mdev23115/backup_before_prepare_0 --incremental-dir=`pwd`/mdev23115/backup_before_prepare_1
bin/mariabackup --prepare --use-memory=1073741824 --innodb-file-io-threads=1 --target-dir=`pwd`/mdev23115/backup_before_prepare_0 --incremental-dir=`pwd`/mdev23115/backup_before_prepare_2
bin/mariabackup --prepare --use-memory=1073741824 --innodb-file-io-threads=1 --target-dir=`pwd`/mdev23115/backup_before_prepare_0 --incremental-dir=`pwd`/mdev23115/backup_before_prepare_3
bin/mariabackup --prepare --use-memory=1073741824 --innodb-file-io-threads=1 --target-dir=`pwd`/mdev23115/backup_before_prepare_0 --incremental-dir=`pwd`/mdev23115/backup_before_prepare_4
bin/mariabackup --prepare --use-memory=1073741824 --innodb-file-io-threads=1 --target-dir=`pwd`/mdev23115/backup_before_prepare_0 --incremental-dir=`pwd`/mdev23115/backup_before_prepare_5
bin/mariabackup --prepare --use-memory=1073741824 --innodb-file-io-threads=1 --target-dir=`pwd`/mdev23115/backup_before_prepare_0 --incremental-dir=`pwd`/mdev23115/backup_before_prepare_6
bin/mariabackup --prepare --use-memory=1073741824 --innodb-file-io-threads=1 --target-dir=`pwd`/mdev23115/backup_before_prepare_0 --incremental-dir=`pwd`/mdev23115/backup_before_prepare_7
bin/mariabackup --prepare --use-memory=1073741824 --innodb-file-io-threads=1 --target-dir=`pwd`/mdev23115/backup_before_prepare_0 --incremental-dir=`pwd`/mdev23115/backup_before_prepare_8
bin/mariabackup --prepare --use-memory=1073741824 --innodb-file-io-threads=1 --target-dir=`pwd`/mdev23115/backup_before_prepare_0 --incremental-dir=`pwd`/mdev23115/backup_before_prepare_9
(modify paths to mariabackup and target/incremental dirs if needed), all prepare should go without errors;
- try to start the server on the datadir mdev23115/backup_before_prepare_0 with
--innodb-compression-algorithm=zlib --innodb-page-size=8K --innodb-encrypt-tables --innodb-encrypt-log --innodb-encryption-threads=4 --aria-encrypt-tables=1 --encrypt-tmp-disk-tables=1 --encrypt-binlog --file-key-management --file-key-management-filename=`pwd`/mysql-test/std_data/keys.txt --plugin-load-add=file_key_management --innodb-buffer-pool-size=512M