During Maria's checkpoint, use the proper mutex to read transaction's short_id
storage/maria/trnman.c: During Maria's checkpoint, we walk the list of active transactions; in this list we may find a transaction with a short_id of 0 which means "uninitialized" (is being created right now) and want to ignore this transaction. Such short_id is set under trn->state_lock, so use this mutex to reliably read short_id during checkpoint.
This commit is contained in:
parent
f36a9625e3
commit
8d96bcda72
@ -682,7 +682,10 @@ my_bool trnman_collect_transactions(LEX_STRING *str_act, LEX_STRING *str_com,
|
|||||||
*/
|
*/
|
||||||
uint sid;
|
uint sid;
|
||||||
LSN rec_lsn, undo_lsn, first_undo_lsn;
|
LSN rec_lsn, undo_lsn, first_undo_lsn;
|
||||||
if ((sid= trn->short_id) == 0)
|
pthread_mutex_lock(&trn->state_lock);
|
||||||
|
sid= trn->short_id;
|
||||||
|
pthread_mutex_unlock(&trn->state_lock);
|
||||||
|
if (sid == 0)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
Not even inited, has done nothing. Or it is the
|
Not even inited, has done nothing. Or it is the
|
||||||
|
Loading…
x
Reference in New Issue
Block a user