[MDEV-27865] buf_page_read_complete assertions during during innodb_init Created: 2022-02-16 Updated: 2022-06-07 Resolved: 2022-06-07 |
|
| Status: | Closed |
| Project: | MariaDB Server |
| Component/s: | Storage Engine - InnoDB |
| Affects Version/s: | 10.5.13 |
| Fix Version/s: | 10.6.9, 10.7.5, 10.8.4, 10.9.2 |
| Type: | Bug | Priority: | Major |
| Reporter: | Daniel Black | Assignee: | Marko Mäkelä |
| Resolution: | Duplicate | Votes: | 0 |
| Labels: | None | ||
| Environment: |
Fedora 35 |
||
| Issue Links: |
|
||||||||
| Description |
|
From: faf 20 instances from last report 2022-02-15. Two stack traces, similar at frame 11 (buf_page_get_low) and lower. Example:
The assertion was added in 2d98b967e316 /
BuildID to MariaDB version
I don't have access to original stack traces. Just copying from faf with a little information extraction. |
| Comments |
| Comment by Marko Mäkelä [ 2022-02-17 ] | ||||||||||||
|
Thank you, this is an interesting concept. The stack traces look invalid. The only callers of ib_wqueue_add() in mariadb-10.5.13 are add_msg() in fts0opt.cc and trx_finalize_for_fts() on transaction commit. The buffer pool (such as buf_page_read_complete()) does not directly interact with the fts_optimize_wq or dict_table_t::fts->add_wq. Can you try to determine the correct stack traces? | ||||||||||||
| Comment by Daniel Black [ 2022-02-17 ] | ||||||||||||
|
Yep, I see. Taking the compiler can take identical looking bits of code and make them the same, sure, calling ib_wqueue_add wrong. Looking at offsets as authentic:
So the following call in buf_page_read_complete after this error is buf_corrupt_page_release. Would this be alias of ib_wqueue_add? Doesn't look similar enough, but I don't have a compiler mind, but at least it has a cold attribute and contains an abort. clone seems to be a copy of the function under specific preconditions (why a compiler would do that to a tiny cold function - no idea). So a close as random un-reproducable corruption? | ||||||||||||
| Comment by Marko Mäkelä [ 2022-02-17 ] | ||||||||||||
|
Thank you. It could simply be that the database was corrupted for whatever reason, and we failed to start up. Another case of We could try to fix the crash (just make InnoDB fail to start up), possibly as part of | ||||||||||||
| Comment by Marko Mäkelä [ 2022-05-16 ] | ||||||||||||
|
I think that this crash should be prevented in the |