MDEV-20813: Remove the buf_flush_init_for_writing() assertion
Old InnoDB/XtraDB versions only initialized FIL_PAGE_TYPE for B-tree pages (to FIL_PAGE_INDEX), and left it uninitialized (possibly containing FIL_PAGE_INDEX) for others. In MySQL or MariaDB 5.5, the field is initialized on almost all pages, but still not all of them. In MariaDB 10.2 and later, buf_flush_init_for_writing() would initialize the FIL_PAGE_TYPE on such old pages, but only after passing the debug assertion that we are now removing from 10.1. There, we will be able to modify fil_crypt_rotate_page() so that it will skip the key rotation for pages that contain 0 in FIL_PAGE_TYPE. In MariaDB 10.1, there is no logic that would initialize FIL_PAGE_TYPE on data pages in old data files after an update. So, encryption key rotation may routinely cause page flushes on pages that contain 0 in FIL_PAGE_TYPE.
This commit is contained in:
parent
2920377aa0
commit
ae702d7643
@ -745,7 +745,6 @@ buf_flush_init_for_writing(
|
||||
ib_uint32_t checksum = 0 /* silence bogus gcc warning */;
|
||||
|
||||
ut_ad(page);
|
||||
ut_ad(!newest_lsn || fil_page_get_type(page));
|
||||
|
||||
if (page_zip_) {
|
||||
page_zip_des_t* page_zip;
|
||||
|
@ -787,7 +787,6 @@ buf_flush_init_for_writing(
|
||||
ib_uint32_t checksum = 0 /* silence bogus gcc warning */;
|
||||
|
||||
ut_ad(page);
|
||||
ut_ad(!newest_lsn || fil_page_get_type(page));
|
||||
|
||||
if (page_zip_) {
|
||||
page_zip_des_t* page_zip;
|
||||
|
Loading…
x
Reference in New Issue
Block a user