Bug #600
test074_sanitulog centos6 failure
Status: | Rejected | Start date: | 10/24/2020 | |
---|---|---|---|---|
Priority: | Normal (Code 4) | Due date: | ||
Assignee: | - | % Done: | 0% | |
Category: | - | |||
Target version: | - |
Description
(gdb) thread apply all bt Thread 2 (Thread 0x7facc94a38c0 (LWP 6374)): #0 0x00000036cae0ec75 in _dl_fini () from /lib64/ld-linux-x86-64.so.2 #1 0x00000036cb235992 in exit () from /lib64/libc.so.6 #2 0x00000036cb21ed24 in __libc_start_main () from /lib64/libc.so.6 #3 0x0000000000400bd9 in _start () Thread 1 (Thread 0x7facc94a2700 (LWP 6393)): #0 0x00007facc94f1794 in ndrx_lh_position_get (conf=0x7facc970e7a0, key_get=0x7facc94a1b80, key_len=0, oflag=<value optimized out>, pos=0x7facc94a18f8, have_value=0x7facc94a18fc, key_typ=0x7facc94f9bab "qstr") at /home/user1/endurox/libnstd/linearhash.c:162 #1 0x00007facc94d0534 in position_get_qstr (pathname=<value optimized out>, oflag=<value optimized out>, pos=<value optimized out>, have_value=<value optimized out>) at /home/user1/endurox/libnstd/sys_svqshm.c:530 #2 0x00007facc94d1270 in ndrx_svqshm_ctl (qstr=0x7facc94a1b80 "/dom1,clt,reply,atmiclt74,6374,2", qid=-1, cmd=0, arg1=-1, p_deletecb=0) at /home/user1/endurox/libnstd/sys_svqshm.c:1044 #3 0x00007facc9982890 in tpinit (init_data=0x0) at /home/user1/endurox/libatmi/init.c:984 #4 0x0000000000400cab in die_thread_fun (ptr=<value optimized out>) at /home/user1/endurox/atmitest/test074_sanitulog/atmiclt74.c:65 #5 0x00000036cb607aa1 in start_thread () from /lib64/libpthread.so.0 #6 0x00000036cb2e8bcd in clone () from /lib64/libc.so.6 (gdb)
It looks like main thread finishes first, and only after then scheduler runs the thread:
if (thread_die || main_thread_die) { pthread_t thread1; /* run thread which will die... * The main thread is OK, but thread dies, thus we need some ULOG. * Sure thing this will have no guarantee, but we can inspect by * our selves.. */ pthread_attr_t pthread_custom_attr; pthread_attr_init(&pthread_custom_attr); ndrx_platf_stack_set(&pthread_custom_attr); /* create threads 1 and 2 */ pthread_create (&thread1, &pthread_custom_attr, (void *) &die_thread_fun, NULL); } tpinit(NULL); usleep(700000); /* main thread unclean shutdown.. */ if (!main_thread_die) { tpterm(); }
/** * Run die... * @param ptr */ exprivate void die_thread_fun(void *ptr) { tpinit(NULL); sleep(9999); }