← Back to team overview

maria-developers team mailing list archive

Re: 4b164f176e6: MDEV-25114 Crash: WSREP: invalid state ROLLED_BACK (FATAL)

 

Hi Sergei,

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

Follow ups

References