[MDEV-18370] InnoDB: Failing assertion: lsn % OS_FILE_LOG_BLOCK_SIZE == LOG_BLOCK_HDR_SIZE in log0log.cc with innodb_scrub_log=ON and high values of innodb_scrub_log_speed Created: 2019-01-24 Updated: 2020-08-07 Resolved: 2020-08-07 |
|
| Status: | Closed |
| Project: | MariaDB Server |
| Component/s: | Storage Engine - InnoDB |
| Affects Version/s: | 10.2, 10.3, 10.4 |
| Fix Version/s: | 10.5.2 |
| Type: | Bug | Priority: | Major |
| Reporter: | Alice Sherepa | Assignee: | Marko Mäkelä |
| Resolution: | Won't Fix | Votes: | 0 |
| Labels: | None | ||
| Attachments: |
|
||||||||||||||||||||||||||||||||||||
| Issue Links: |
|
||||||||||||||||||||||||||||||||||||
| Description |
|
To reproduce, bootstrap a clean datadir with all defaults and start the server with
Do it in a loop if it doesn't fail right away. Happens both on debug and non-debug builds. Couldn't reproduce on 10.1 and 10.5. |
| Comments |
| Comment by Marko Mäkelä [ 2019-02-01 ] |
|
This report duplicates |
| Comment by Marko Mäkelä [ 2019-04-08 ] |
|
This is not necessarily related to It is worth noting that the mentioned code is only running when using the non-default setting innodb_scrub_log=ON. alice, can you please try to create a reproducible test case for this? If this only occurs on 10.4, I wonder if this is related to the changed format of innodb_encrypt_log=ON in 10.4 ( |
| Comment by Marko Mäkelä [ 2019-04-08 ] |
|
In my.cnf |
| Comment by Elena Stepanova [ 2019-08-17 ] |
|
marko: I've updated the description, but it's pretty much as alice initially described: just start the server with the options you listed on a clean datadir, and repeat if it doesn't fail right away. One additional note – don't do it in memory. Update: It did eventually happen in memory on a lab machine, but it took over 100 attempts. Update2: Update3: |
| Comment by Marko Mäkelä [ 2019-09-30 ] |
|
Do we actually need this feature? With a completely new redo log file format in I have not studied the log scrubbing code, but if the page scrubbing code (which does not work, according to |
| Comment by Elena Stepanova [ 2019-09-30 ] |
|
According to JIRA, Generally, I personally don't have any objections regarding removing the feature, but we don't really have much of experience/procedure for it, I don't know how it needs to be done. |
| Comment by Marko Mäkelä [ 2020-08-07 ] |
|
A correct implementation of this would be to punch holes or write sequences of zero bytes to the redo log blocks as they are logically freed upon completing a checkpoint. Proper synchronization between checkpoint, log append, and a dedicated log scrubbing thread could be difficult to achieve. |