On 2021/2/3 21:57, Martin Wilck wrote:
> On Wed, 2021-02-03 at 18:48 +0800, lixiaokeng wrote:
>>
>>
>> On 2021/2/3 4:52, Martin Wilck wrote:
>>> did this fix your "crash on exit" issue?
>>
>> Unfortunately, the issue is not solved.
>>
>> There will be some different coredump stack.
>>
>> 0.8.5 (I'm not sure there are only two stacks in 0.8.5)
>> First stack:
>> Program terminated with signal SIGSEGV, Segmentation fault.
>> #0 0x00007f59a0109647 in ?? ()
>> [Current thread is 1 (LWP 1997690)]
>> (gdb) bt
>> #0 0x00007f59a0109647 in ?? ()
>> #1 0x0000000000000000 in ?? ()
>> (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 ?? ()
>>
>> Second stack:
>> #0 0x0000ffffb6118f4c in aarch64_fallback_frame_state
>> (context=0xffffb523f200, context=0xffffb523f200, fs=0xffffb523e700)
>> at ./md-unwind-support.h:74
>> #1 uw_frame_state_for (context=context@entry=0xffffb523f200,
>> fs=fs@entry=0xffffb523e700) at ../../../libgcc/unwind-dw2.c:1257
>> #2 0x0000ffffb6119ef4 in _Unwind_ForcedUnwind_Phase2
>> (exc=exc@entry=0xffffb52403b0, context=context@entry=0xffffb523f200)
>> at ../../../libgcc/unwind.inc:155
>> #3 0x0000ffffb611a284 in _Unwind_ForcedUnwind (exc=0xffffb52403b0,
>> stop=stop@entry=0xffffb64846c0 <unwind_stop>,
>> stop_argument=0xffffb523f630) at ../../../libgcc/unwind.inc:207
>> #4 0x0000ffffb6484860 in __GI___pthread_unwind (buf=<optimized out>)
>> at unwind.c:121
>> #5 0x0000ffffb6482d08 in __do_cancel () at pthreadP.h:304
>> #6 __GI___pthread_testcancel () at pthread_testcancel.c:26
>> #7 0x0000ffffb5c528e8 in ?? ()
>>
>
Hi Martin:
Here I add condlog(2, "start funcname"), pthread_cleanup_push(func_print,
NULL)
in every pthread_create func. When these two core happened, "exit tur_thread"
are less than "start tur_thread". So the trouble may be in tur_thread.
I will use
int oldstate;
pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, &oldstate);
...
pthread_setcancelstate(oldstate, NULL);
pthread_testcancel();
to test it.
Regards,
Lixiaokeng
--
dm-devel mailing list
dm-devel@redhat.com
https://listman.redhat.com/mailman/listinfo/dm-devel