summaryrefslogtreecommitdiff
path: root/storage/innobase/include/trx0undo.h
diff options
context:
space:
mode:
authorMarko Mäkelä <marko.makela@mariadb.com>2017-08-11 12:47:54 +0300
committerMarko Mäkelä <marko.makela@mariadb.com>2017-08-11 12:47:54 +0300
commit347d9456e4ebdfd00b5383f834bed57c7092adc9 (patch)
treed11d4a03b1351f2dbd5a84aec983bf4f720872b5 /storage/innobase/include/trx0undo.h
parent73297f532fba89e33785460448e93f87478c2505 (diff)
downloadmariadb-git-347d9456e4ebdfd00b5383f834bed57c7092adc9.tar.gz
MDEV-13495 Crash in rollback of a recovered INSERT transaction after upgrade
If the server is upgraded from a database that was created before MDEV-12288, and if the undo logs in the database contain an incomplete transaction that performed an INSERT operation, the server would crash when rolling back that transaction. trx_commit_low(): Relax a too strict transaction. This function will also be called after completing the rollback of a recovered transaction. trx_purge_add_undo_to_history(): Merged from the functions trx_purge_add_update_undo_to_history() and trx_undo_update_cleanup(), which are removed. Remove the parameter undo_page, and instead call trx_undo_set_state_at_finish() to obtain it. trx_write_serialisation_history(): Treat undo and old_insert equally. That is, after the rollback (or XA COMMIT) of a recovered transaction before upgrade, move all logs (both insert_undo and update_undo) to the purge queue.
Diffstat (limited to 'storage/innobase/include/trx0undo.h')
-rw-r--r--storage/innobase/include/trx0undo.h13
1 files changed, 0 insertions, 13 deletions
diff --git a/storage/innobase/include/trx0undo.h b/storage/innobase/include/trx0undo.h
index 1302d3fd6df..ba4dc73f73b 100644
--- a/storage/innobase/include/trx0undo.h
+++ b/storage/innobase/include/trx0undo.h
@@ -287,19 +287,6 @@ trx_undo_set_state_at_prepare(
bool rollback,
mtr_t* mtr);
-/**********************************************************************//**
-Adds the update undo log header as the first in the history list, and
-frees the memory object, or puts it to the list of cached update undo log
-segments. */
-void
-trx_undo_update_cleanup(
-/*====================*/
- trx_t* trx, /*!< in: trx owning the update
- undo log */
- page_t* undo_page, /*!< in: update undo log header page,
- x-latched */
- mtr_t* mtr); /*!< in: mtr */
-
/** Free an old insert or temporary undo log after commit or rollback.
The information is not needed after a commit or rollback, therefore
the data can be discarded.