← Back to team overview

maria-developers team mailing list archive

Re: [Commits] 8bf23ef: MDEV-8208: Sporadic SEGFAULT on startup

 

Hi, Nirbhay!

On Sep 12, Nirbhay Choubey wrote:
> >
> > > diff --git a/sql/mysqld.cc b/sql/mysqld.cc
> > > index 2008fc5..4c05999 100644
> > > --- a/sql/mysqld.cc
> > > +++ b/sql/mysqld.cc
> > > @@ -4584,6 +4579,29 @@ static int init_server_components()

> > > +    /* Now is the time to initialize threads for queries. */
> > > +    THD *tmp;
> > > +    I_List_iterator<THD> it(threads);
> > > +    while ((tmp= it++))
> > > +      if (tmp->wsrep_applier == true)
> > > +        tmp->init_for_queries();
> >
> > Do you really need to iterate over all THD's? There is only one applier
> > thread, right? And it's THD is not stored anywhere, only in the global
> > list?
> 
> 2 actually : applier and replayer.

I meant that there might be, perhaps, a global variable, like
THD *wsrep_applier_thd, and then you won't need to iterate.
But now I realize that there can be no connection threads at this point,
only wsrep threads. So practically you need to initialize *all* THD's in
the list. Ok, then, I retract my comment, let's keep this code as you
have it.

ok to push, thanks

> > > +    mysql_mutex_unlock(&LOCK_thread_count);
> > > +  }
> > > +#endif
> > > +

Regards,
Sergei


References