Hi, Seppo, Jan!
Note, this is 10.2 patch below.
>
> MDEV-25114 Crash: WSREP: invalid state ROLLED_BACK (FATAL)
I think this should say
MDEV-23328 Server hang due to Galera lock conflict resolution
Sure.
> + WSREP_TO_ISOLATION_BEGIN(WSREP_MYSQL_DB, NULL, NULL)
when can it fail and jump to wsrep_error_label?
under what conditions?
At least when the node disconnects at a suitable moment.
> +/* This is wrapper for wsrep_break_lock in thr_lock.c */
> +static int wsrep_thr_abort_thd(void *bf_thd_ptr, void *victim_thd_ptr, my_bool signal)
> +{
> + THD* victim_thd= (THD *) victim_thd_ptr;
> + /* We need to lock THD::LOCK_thd_data to protect victim
> + from concurrent usage or disconnect or delete. */
How do you know victim_thd wasn't deleted before you locked LOCK_thd_data
below?
I must say the thr_lock code is not familiar to me but there are mysql_mutex_lock() calls
to lock->mutex. After code review it is not clear to me what that mutex is.
> if (victim_trx) {
> + wsrep_thd_UNLOCK(victim_thd);
what keeps victim_trx from disappearing here?
Nothing. Do you have suggestions ?
R: Jan