diff options
author | Marko Mäkelä <marko.makela@mariadb.com> | 2021-09-22 14:15:00 +0300 |
---|---|---|
committer | Marko Mäkelä <marko.makela@mariadb.com> | 2021-09-22 14:15:00 +0300 |
commit | 1cb218c37cc3fe01a1ff2fe9b1cbfb591e90d5ce (patch) | |
tree | f5be99c4e6675ac4fd8b4123de07d0058d303b55 /sql/sql_yacc.yy | |
parent | 21d19ed45b1b71c2815559a8ad68888a4bfe902f (diff) | |
download | mariadb-git-1cb218c37cc3fe01a1ff2fe9b1cbfb591e90d5ce.tar.gz |
MDEV-26450: Corruption due to innodb_undo_log_truncatebb-10.2-MDEV-26450
At least since commit 055a3334adc004bd3a897990c2f93178e6bb5f90
(MDEV-13564) the undo log truncation in InnoDB did not work correctly.
The main issue is that during the execution of
trx_purge_truncate_history() some pages of the newly truncated
undo tablespace could be discarded.
fsp_try_extend_data_file(): Apply the peculiar rounding of
fil_space_t::size_in_header only to the system tablespace,
whose size can be expressed in megabytes in a configuration parameter.
Other files may freely grow by a number of pages.
fseg_alloc_free_page_low(): Do allow the extension of undo tablespaces,
and mention the file name in the error message.
mtr_t::commit_shrink(): Implement crash-safe shrinking of a tablespace
file. First, durably write the log, then shrink the file, and finally
release the page latches of the rebuilt tablespace. Refactored from
trx_purge_truncate_history().
log_write_and_flush_prepare(), log_write_and_flush(): New functions
to durably write log during mtr_t::commit_shrink().
Diffstat (limited to 'sql/sql_yacc.yy')
0 files changed, 0 insertions, 0 deletions