Hi Sergei,

On Fri, Oct 1, 2021 at 9:05 PM Sergei Golubchik <serg@mariadb.org> wrote:
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