diff options
author | Marko Mäkelä <marko.makela@mariadb.com> | 2020-02-17 14:52:20 +0200 |
---|---|---|
committer | Marko Mäkelä <marko.makela@mariadb.com> | 2020-02-17 15:32:24 +0200 |
commit | 055ce75d8be485de3acf101c042b21ab0fc5a823 (patch) | |
tree | 74d6f12278d3c4792dab3c1d8658bff719d3b193 | |
parent | 22f649a67a26d98ed46b57ebe42799f4717e27bf (diff) | |
download | mariadb-git-055ce75d8be485de3acf101c042b21ab0fc5a823.tar.gz |
MDEV-21174: Correct a debug assertion failure
trx_purge_free_segment(): In some cases (observed when running
the test innodb_zip.wl5522_debug_zip), there is no change to
the TRX_UNDO_NEEDS_PURGE field. Add mtr_t::OPT to disable a debug check.
The bogus debug check was introduced in
commit 56f6dab1d0e5a464ea49c1e5efb0032a0f5cea3e.
-rw-r--r-- | storage/innobase/trx/trx0purge.cc | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/storage/innobase/trx/trx0purge.cc b/storage/innobase/trx/trx0purge.cc index bda0b13845a..fa3a3fcc951 100644 --- a/storage/innobase/trx/trx0purge.cc +++ b/storage/innobase/trx/trx0purge.cc @@ -361,8 +361,8 @@ trx_purge_free_segment(trx_rseg_t* rseg, fil_addr_t hdr_addr) again. The list of pages in the undo log tail gets inconsistent during the freeing of the segment, and therefore purge should not try to access them again. */ - mtr.write<2>(*block, block->frame + hdr_addr.boffset - + TRX_UNDO_NEEDS_PURGE, 0U); + mtr.write<2,mtr_t::OPT>(*block, block->frame + hdr_addr.boffset + + TRX_UNDO_NEEDS_PURGE, 0U); while (!fseg_free_step_not_header( TRX_UNDO_SEG_HDR + TRX_UNDO_FSEG_HEADER |