maria-developers team mailing list archive
-
maria-developers team
-
Mailing list archive
-
Message #08903
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