diff --git a/storage/tokudb/ha_tokudb.cc b/storage/tokudb/ha_tokudb.cc index 6219ee39f75eef2d42aa7f57f7ca57a510189255..a09faee5f0eacde9a443eab76177ed0c11f79244 100644 --- a/storage/tokudb/ha_tokudb.cc +++ b/storage/tokudb/ha_tokudb.cc @@ -8270,7 +8270,6 @@ void ha_tokudb::cleanup_txn(DB_TXN *txn) { int r = cursor->c_close(cursor); assert(r == 0); cursor = NULL; - remove_from_trx_handler_list(); } } diff --git a/storage/tokudb/hatoku_hton.cc b/storage/tokudb/hatoku_hton.cc index 3f649f981156157116644b59c1c2b9579cbb38c1..49419153975416909a34e4caa143acb745b0f4e6 100644 --- a/storage/tokudb/hatoku_hton.cc +++ b/storage/tokudb/hatoku_hton.cc @@ -647,6 +647,7 @@ static void abort_txn_with_progress(DB_TXN* txn, THD* thd) { static void tokudb_cleanup_handlers(tokudb_trx_data *trx, DB_TXN *txn) { LIST *e; while ((e = trx->handlers)) { + trx->handlers = list_delete(trx->handlers, e); ha_tokudb *handler = (ha_tokudb *) e->data; handler->cleanup_txn(txn); }