From c30a8442e8324f53f9157aabcc0330db0cd2e95f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Lindstr=C3=B6m?= Date: Thu, 11 Sep 2014 15:41:30 +0300 Subject: [PATCH] MDEV-6729: InnoDB: Failing assertion: state == TRX_STATE_NOT_STARTED in file trx0trx.ic line 60 Problem was that trx might have not been started when we enter release savepoint, this can happen when trx with savepoint is already aborted or when we try to release non-existing savepoint. --- storage/innobase/handler/ha_innodb.cc | 1 + storage/xtradb/handler/ha_innodb.cc | 1 + 2 files changed, 2 insertions(+) diff --git a/storage/innobase/handler/ha_innodb.cc b/storage/innobase/handler/ha_innodb.cc index bd2c66b42c2..50af060e15f 100644 --- a/storage/innobase/handler/ha_innodb.cc +++ b/storage/innobase/handler/ha_innodb.cc @@ -4088,6 +4088,7 @@ innobase_release_savepoint( DBUG_ASSERT(hton == innodb_hton_ptr); trx = check_trx_exists(thd); + trx_start_if_not_started(trx); /* TODO: use provided savepoint data area to store savepoint data */ diff --git a/storage/xtradb/handler/ha_innodb.cc b/storage/xtradb/handler/ha_innodb.cc index 01e79711ada..c21b188d3e4 100644 --- a/storage/xtradb/handler/ha_innodb.cc +++ b/storage/xtradb/handler/ha_innodb.cc @@ -4657,6 +4657,7 @@ innobase_release_savepoint( DBUG_ASSERT(hton == innodb_hton_ptr); trx = check_trx_exists(thd); + trx_start_if_not_started(trx); /* TODO: use provided savepoint data area to store savepoint data */