Details
- 
    Bug 
- 
    Status: Closed (View Workflow)
- 
    Major 
- 
    Resolution: Fixed
- 
    10.5.1, 10.5.2, 10.5.3
Description
Every now and then, especially in IMPORT TABLESPACE tests, we encounter an assertion failure in log_checkpoint():
| 10.5 | 
| #7  0x000055cadaf300cb in log_checkpoint () | 
|     at /mariadb/10.5-MDEV-12353/storage/innobase/log/log0log.cc:1367 | 
| 1367		ut_ad(oldest_lsn >= log_sys.last_checkpoint_lsn); | 
| (gdb) i lo | 
| oldest_lsn = 93891 | 
| flush_lsn = <optimized out> | 
| end_lsn = <optimized out> | 
| do_write = <optimized out>
 | 
(gdb) p log_sys.last_checkpoint_lsn
$1 = 93906
(gdb) p log_sys.next_checkpoint_lsn
$2 = 93906
(gdb) p log_sys.last_checkpoint_lsn-oldest_lsn
$3 = 15
(gdb) p log_sys.lsn
$4 = {<std::__atomic_base<unsigned long>> = {_M_i = 121116}, <No data fields>}
|  | 
The difference is more than the size of FILE_CHECKPOINT record, which is 12 bytes.
If I understand it correctly, the the assertion is reporting that the previous checkpoint was too long ago, and we were not actually crash-safe. This is an indication that a log_free_check() call is missing. I do not see any call to in row0import.cc. The function row_import_for_mysql() is writing a small amount of redo log in trx_undo_assign().
I have the feeling that this is related to either MDEV-12353 changing the redo log format, or MDEV-21534 improving the log write speed.
One affected test is encryption.innodb-checksum-algorithm, but there probably are others.
Attachments
Issue Links
- is caused by
- 
                    MDEV-15058 Remove multiple InnoDB buffer pool instances -         
- Closed
 
-         
- is duplicated by
- 
                    MDEV-22213 innodb.101_compatibility crashes with assert "mlog_checkpoint_lsn <= recovered_lsn" -         
- Closed
 
-         
- relates to
- 
                    MDEV-16896 encryption.innodb-checksum-algorithm failed in buildbot, apparently server crashed -         
- Closed
 
-         
- 
                    MDEV-33363 CI failure: innodb.import_corrupted: Assertion failed: oldest_lsn > log_sys.last_checkpoint_lsn -         
- Closed
 
-