You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Bug #20534616 - FAILURES IN INNODB.INNODB_WL6501_CRASH_* TESTS
The UNDO log is getting corrupted because tablespace and file path data
are being updated to the system tables during startup before calling
truncate::fixup_tables() which does not expect any changed pages.
This patch prevents that from happening in two ways.
First, it prevents all updates to SYS_TABLESPACES and SYS_DATAFILES
during startup until these two system tables can be properly opened
and/or created. Some of these preventions had already been made in
wl6205, but a few more are added here.
Secondly, it breaks up truncate::fixup_tables() into two halves.
The first half works only on tables in the system tablespace and it
does that before these two system tables are opened and tablespace
discovery is done. In this way, it can be assured that UNDO pages
are not changed. Then after tablespace discovery, the rest of the
tables are fixed-up.
This patch also contains an extra limitation on the frequency of
calling dict_replace_tablespace_and_filepath() in fil_ibd_open().
These tablespaces are all initially opened during tablespace discovery.
Since the filepath of file-per-table tablespaces are not looked up in
SYS_DATAFILES during tablespace discovery (the filepath is still
generated from the table name) there is no need to update the dictionary
with the filepath generated. It is most likely already there.
(cherry picked from commit 7c9b696b6733beff9ca7858b5dfb3f8c75cdb7d6)
0 commit comments