Bug #600

test074_sanitulog centos6 failure

Added by Madars 7 months ago.

Status:NewStart date:10/24/2020
Priority:NormalDue 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);
}

Also available in: Atom PDF