[dm-devel] [PATCH] multipathd: avoid crash in uevent_cleanup()

Martin Wilck mwilck at suse.com
Fri Feb 5 11:08:41 UTC 2021


On Thu, 2021-02-04 at 16:06 +0100, Martin Wilck wrote:
> On Thu, 2021-02-04 at 09:40 +0800, lixiaokeng wrote:
> > 
> > 
> > On 2021/2/3 21:57, Martin Wilck wrote:
> > > > If exit() before all pthread_cancel in child of 0.7.7, there is
> > > > no
> > > > any crash.
> > > What do you mean with "exit() before all pthread_cancel"? If this
> > > happens on pthread_cancel(), and you don't call that function,
> > > this
> > > would actually be expected.
> > 
> > When running_state is DAEMON_SHUTDOWN, break while then _exit(0).
> > But
> > is is not a great method.
> 
> I wonder if it would be possible to figure out the LWP numbers
> (process
> IDs) of the different threads before the crash occurs, and compare
> this
> to the gdb output
> 
> (gdb) info threads
>   Id   Target Id         Frame
> * 1    LWP 1997690       0x00007f59a0109647 in ?? ()
>   2    LWP 1996840       0x00007f59a0531de7 in ?? ()
>   3    LWP 1997692       0x00007f59a0109647 in ?? ()
>   4    LWP 1996857       0x00007f59a020d169 in ?? ()
> 
> ... to identify which thread crashed, and if it's always the same
> one.

>From the LWP numbers, thread 2 and 4 are probably TUR checkers
(temporary threads). thread 1 can't be easily identified. Could you 
provide the stack of thread 3? From that, we might be able to infer
which thread crashed, because multipathd always starts its threads in
the same sequence.

Martin






More information about the dm-devel mailing list