Skip to content
Snippets Groups Projects
  • Danny Auble's avatar
    b1fbeb85
    Fix race condition with respects to cleaning up the profiling threads · b1fbeb85
    Danny Auble authored
    when in use.
    
    The problem here is the polling threads in the various acct_gather codes
    were detached and could possibly still be polling after the plugin had
    been unloaded making a seg fault with a backtrace like this...
    
    #0  0x00007fe7af008c00 in ?? ()
    #1  0x00007fe7b1138479 in __nptl_deallocate_tsd () at pthread_create.c:175
    #2  0x00007fe7b11398b0 in __nptl_deallocate_tsd () at pthread_create.c:326
    #3  start_thread (arg=0x7fe7b1f12700) at pthread_create.c:346
    #4  0x00007fe7b0e6fb5d in clone ()
        at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109
    
    The fix was to make the threads non-detached and join them before calling
    a dlclose.
    b1fbeb85
    History
    Fix race condition with respects to cleaning up the profiling threads
    Danny Auble authored
    when in use.
    
    The problem here is the polling threads in the various acct_gather codes
    were detached and could possibly still be polling after the plugin had
    been unloaded making a seg fault with a backtrace like this...
    
    #0  0x00007fe7af008c00 in ?? ()
    #1  0x00007fe7b1138479 in __nptl_deallocate_tsd () at pthread_create.c:175
    #2  0x00007fe7b11398b0 in __nptl_deallocate_tsd () at pthread_create.c:326
    #3  start_thread (arg=0x7fe7b1f12700) at pthread_create.c:346
    #4  0x00007fe7b0e6fb5d in clone ()
        at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109
    
    The fix was to make the threads non-detached and join them before calling
    a dlclose.