[MDEV-13559] encryption.innodb-redo-badkey failed in buildbot Created: 2017-08-17  Updated: 2017-08-18  Resolved: 2017-08-18

Status: Closed
Project: MariaDB Server
Component/s: Encryption, Tests
Affects Version/s: 10.3
Fix Version/s: 10.2.9, 10.3.1

Type: Bug Priority: Major
Reporter: Alice Sherepa Assignee: Marko Mäkelä
Resolution: Fixed Votes: 0
Labels: None
Environment:

kvm-bintar-quantal-amd64


Issue Links:
Relates
relates to MDEV-13536 DB_TRX_ID is not actually being reset... Closed
relates to MDEV-13542 Crashing on a corrupted page is unhel... Closed

 Description   

http://buildbot.askmonty.org/buildbot/builders/kvm-bintar-quantal-amd64/builds/6902/steps/test/logs/stdio

encryption.innodb-redo-badkey 'cbc,innodb' w4 [ fail ]  Found warnings/errors in server log file!
        Test ended at 2017-08-17 10:04:15
line
2017-08-17 10:04:12 140553760634624 [ERROR] InnoDB: The page [page id: space=7, page number=3] in file './test/t4.ibd' cannot be decrypted.
2017-08-17 10:04:12 140553760634624 [ERROR] InnoDB: The page [page id: space=6, page number=3] in file './test/t3.ibd' cannot be decrypted.
2017-08-17 10:04:12 140553760634624 [ERROR] InnoDB: Unable to decompress ./test/t2.ibd[page id: space=5, page number=3]
2017-08-17 10:04:12 140553760634624 [ERROR] InnoDB: Database page corruption on disk or a failed file read of tablespace test/t2 page [page id: space=5, page number=3]. You may have to recover from a backup.
2017-08-17 10:04:12 140553760634624 [ERROR] InnoDB: Unable to decompress ./test/t1.ibd[page id: space=4, page number=3]
2017-08-17 10:04:12 140553760634624 [ERROR] InnoDB: Database page corruption on disk or a failed file read of tablespace test/t1 page [page id: space=4, page number=3]. You may have to recover from a backup.
^ Found warnings in /usr/local/mariadb-10.3.1-linux-x86_64/mysql-test/var/4/log/mysqld.1.err



 Comments   
Comment by Marko Mäkelä [ 2017-08-17 ]

I believe I observed a similar failure when testing MDEV-13536.

I did touch this test in my work-around for MDEV-13542, maybe in vain, because this test is abruptly killing the server, not doing a clean shutdown and restart.

Looking at the server error log
http://buildbot.askmonty.org/buildbot/builders/kvm-bintar-quantal-amd64/builds/6902/steps/test/logs/mysqld.1.err.4
I determined that this crash occurs on the first restart, after no_checkpoint_end.inc killed the server. This server startup is expected to fail, and it did fail:

--source ../../suite/innodb/include/no_checkpoint_end.inc
 
--echo # restart
--error 1
-- source include/start_mysqld.inc

The only problem here is that we got an unexpected message about decompression failure. There is only a suppression about a decryption failure:

call mtr.add_suppression("InnoDB: The page \[page id: space=[1-9][0-9]*, page number=[0-9]+\] in file test/t[1-4] cannot be decrypted");

The proper solution would seem to be to add the missing suppression.

The reason why this message is being issued should be that with MDEV-13536 (and MDEV-12288), purge now has more work to do, and thus more redo log records can be emitted before the crash. Purge would clear the DB_TRX_ID columns of each INSERT. Before MDEV-12288, purge did not have any access to any undo log generated by INSERT to an empty table.

I was not able to repeat the failure locally, even with some small tricks.

Comment by Marko Mäkelä [ 2017-08-18 ]

I hope bb-10.2-marko will run fine with the added suppressions.
The test is injecting faults, and it is not completely unplausible to get decompression or read errors in addition to decryption errors.

Generated at Thu Feb 08 08:06:32 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.