Current-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

mesalib abort



When running glmark2 with native xsrc on -current/amd64, I get

Program terminated with signal SIGABRT, Aborted.
#0  0x00007f7ff5844a2a in _sys___sigprocmask14 () from /usr/lib/libc.so.12
(gdb) bt
#0  0x00007f7ff5844a2a in _sys___sigprocmask14 () from /usr/lib/libc.so.12
#1  0x00007f7ff160a461 in pthread_sigmask (how=<optimized out>, 
    set=<optimized out>, oset=<optimized out>)
    at /usr/src/lib/libpthread/pthread_misc.c:164
#2  0x00007f7fed75fec3 in u_thread_create (
    routine=0x7f7fed75ff06 <util_queue_thread_func>, param=0x7f7ff7e9f220)
    at /usr/xsrc/external/mit/MesaLib/dist/src/util/u_thread.h:50
#3  util_queue_create_thread (queue=queue@entry=0x7f7ff7e8b900, 
    index=index@entry=0)
    at /usr/xsrc/external/mit/MesaLib/dist/src/util/u_queue.c:350
#4  0x00007f7fed7604ad in util_queue_init (queue=queue@entry=0x7f7ff7e8b900, 
    name=name@entry=0x7f7fef727c8b "disk$", max_jobs=max_jobs@entry=32, 
    num_threads=num_threads@entry=1, flags=flags@entry=7)
    at /usr/xsrc/external/mit/MesaLib/dist/src/util/u_queue.c:466
...

/usr/xsrc/external/mit/MesaLib/dist/src/util/u_thread.h:50:
    41     thrd_t thread;
    42  #ifdef HAVE_PTHREAD
    43     sigset_t saved_set, new_set;
    44     int ret;
    45  
    46     sigfillset(&new_set);
    47     sigdelset(&new_set, SIGSYS);
    48     pthread_sigmask(SIG_BLOCK, &new_set, &saved_set);
    49     ret = thrd_create( &thread, routine, param );
    50     pthread_sigmask(SIG_SETMASK, &saved_set, NULL);
    51  #else
    52     int ret;
    53     ret = thrd_create( &thread, routine, param );
    54  #endif
    55     if (ret)
    56        return 0;
    57  
    58     return thread;


It looks as though line 50 simply undoes line 48, and it doesn't matter
whether or not line 49 fails. How can this break?

Cheers,

Patrick


Home | Main Index | Thread Index | Old Index