|
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.
|