Details
-
Bug
-
Status: Closed (View Workflow)
-
Critical
-
Resolution: Fixed
-
10.6, 10.11, 11.0(EOL), 11.1(EOL), 11.2, 11.3(EOL), 11.4
Description
According to MDEV-33315, InnoDB would crash somewhere inside fseg_free_page() while attempting to free a BLOB page. The data directory is obviously corrupted, because it was a combination of two partial copies that had been made at different times. But, in the sentiment of MDEV-13542, the database should not crash.
The crash occurs due to an assertion failure in flst_read_addr(). These assertion expressions had better be moved to conditions within the callers of the following accessor functions:
grep -n '\<flst_get_\(first\|last\|next\|prev\)' storage/innobase/*/*c
|
There are 27 occurrences, so it is not a huge effort to fix this. Many callers, such as fseg_get_first_extent(), may already return a corruption status to their callers.
Attachments
Issue Links
- is duplicated by
-
MDEV-29832 rpl.rpl_semi_sync_after_sync_row crashes in BB with InnoDB: Failing assertion: addr.page == FIL_NULL || addr.boffset >= FIL_PAGE_DATA
- Open
- relates to
-
MDEV-13542 Crashing on a corrupted page is unhelpful
- Closed
-
MDEV-33315 InnoDB history length and undo tablespace files keep growing
- Closed