diff --git a/storage/innobase/trx/trx0trx.cc b/storage/innobase/trx/trx0trx.cc index 6773e200cbb..bf5a3b19186 100644 --- a/storage/innobase/trx/trx0trx.cc +++ b/storage/innobase/trx/trx0trx.cc @@ -2297,6 +2297,12 @@ dberr_t trx_commit_for_mysql(trx_t *trx) /*!< in/out: transaction */ /* For GTID persistence we need update undo segment. */ db_err = trx_undo_gtid_add_update_undo(trx, false, false); if (db_err != DB_SUCCESS) { + trx->error_state = DB_SUCCESS; + + trx_rollback_to_savepoint(trx, NULL); + + trx->error_state = DB_SUCCESS; + return (db_err); }