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 -- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel