summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarko Mäkelä <marko.makela@mariadb.com>2019-11-27 14:00:01 +0200
committerMarko Mäkelä <marko.makela@mariadb.com>2019-11-27 14:00:01 +0200
commit3fc1f6260f137790f83865a534cded00a18b3274 (patch)
tree86aae345e815130bb4bba7e30417eab6bd4a5b28
parentbf58ec77a1adaa653a0b044b950cf420f8c19de9 (diff)
downloadmariadb-git-3fc1f6260f137790f83865a534cded00a18b3274.tar.gz
MDEV-21158 trx_undo_seg_free() is never redo-logged
As part of commit 3c09f148f362a587ac3267c31fd17da5f71a0b11 trx_undo_commit_cleanup() was always invoked with noredo=true. The impact of this should be that some undo log pages may not be correctly freed if the server is killed and crash recovery will be performed. Similarly, if mariabackup --backup is being executed concurrently with user transaction commits, it could happen that some undo log pages in the backup will never be marked as free for reuse. It seems that this bug should not have any user-visible impact other than some undo pages being wasted.
-rw-r--r--storage/innobase/trx/trx0undo.cc4
1 files changed, 2 insertions, 2 deletions
diff --git a/storage/innobase/trx/trx0undo.cc b/storage/innobase/trx/trx0undo.cc
index 7a0accf889f..2c061965e34 100644
--- a/storage/innobase/trx/trx0undo.cc
+++ b/storage/innobase/trx/trx0undo.cc
@@ -1,7 +1,7 @@
/*****************************************************************************
Copyright (c) 1996, 2016, Oracle and/or its affiliates. All Rights Reserved.
-Copyright (c) 2014, 2018, MariaDB Corporation.
+Copyright (c) 2014, 2019, MariaDB Corporation.
This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software
@@ -1607,7 +1607,7 @@ trx_undo_commit_cleanup(trx_undo_t* undo, bool is_temp)
/* Delete first the undo log segment in the file */
mutex_exit(&rseg->mutex);
- trx_undo_seg_free(undo, true);
+ trx_undo_seg_free(undo, is_temp);
mutex_enter(&rseg->mutex);
ut_ad(rseg->curr_size > undo->size);