References: https://mariadb.atlassian.net/browse/MDEV-5908 -
moved releasing of wsrep THD mutex and thd->awake later, so that wsrep->abort_pre_commit() is guaranteed to run for a thread which is still in conflict state
This commit is contained in:
parent
8a99be643c
commit
7b57c5ea6f
0
BUILD/compile-amd64-debug-wsrep
Normal file → Executable file
0
BUILD/compile-amd64-debug-wsrep
Normal file → Executable file
@ -16771,8 +16771,6 @@ wsrep_innobase_kill_one_trx(void * const bf_thd_ptr,
|
|||||||
|
|
||||||
WSREP_DEBUG("kill query for: %ld",
|
WSREP_DEBUG("kill query for: %ld",
|
||||||
wsrep_thd_thread_id(thd));
|
wsrep_thd_thread_id(thd));
|
||||||
wsrep_thd_UNLOCK(thd);
|
|
||||||
wsrep_thd_awake(thd, signal);
|
|
||||||
WSREP_DEBUG("kill trx QUERY_COMMITTING for %llu",
|
WSREP_DEBUG("kill trx QUERY_COMMITTING for %llu",
|
||||||
victim_trx->id);
|
victim_trx->id);
|
||||||
|
|
||||||
@ -16789,6 +16787,8 @@ wsrep_innobase_kill_one_trx(void * const bf_thd_ptr,
|
|||||||
case WSREP_WARNING:
|
case WSREP_WARNING:
|
||||||
WSREP_DEBUG("cancel commit warning: %llu",
|
WSREP_DEBUG("cancel commit warning: %llu",
|
||||||
victim_trx->id);
|
victim_trx->id);
|
||||||
|
wsrep_thd_UNLOCK(thd);
|
||||||
|
wsrep_thd_awake(thd, signal);
|
||||||
DBUG_RETURN(1);
|
DBUG_RETURN(1);
|
||||||
break;
|
break;
|
||||||
case WSREP_OK:
|
case WSREP_OK:
|
||||||
@ -16806,6 +16806,8 @@ wsrep_innobase_kill_one_trx(void * const bf_thd_ptr,
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
wsrep_thd_UNLOCK(thd);
|
||||||
|
wsrep_thd_awake(thd, signal);
|
||||||
break;
|
break;
|
||||||
case QUERY_EXEC:
|
case QUERY_EXEC:
|
||||||
/* it is possible that victim trx is itself waiting for some
|
/* it is possible that victim trx is itself waiting for some
|
||||||
|
Loading…
x
Reference in New Issue
Block a user