diff --git a/trx/trx0roll.c b/trx/trx0roll.c index 2cf5ecf62e4ae277dbad736e2967e8f453c271be..dd7bd7cdc28127b58d17f6ece9305185b5907302 100644 --- a/trx/trx0roll.c +++ b/trx/trx0roll.c @@ -536,7 +536,12 @@ trx_rollback_or_clean_all_recovered( } else { goto leave_function; } + + mutex_exit(&kernel_mutex); + loop: + mutex_enter(&kernel_mutex); + for (trx = UT_LIST_GET_FIRST(trx_sys->trx_list); trx; trx = UT_LIST_GET_NEXT(trx_list, trx)) { if (!trx->is_recovered) {