[Varnish] #534: Threads stuck in trunk

Varnish varnish-bugs at projects.linpro.no
Tue Aug 18 22:52:57 CEST 2009


#534: Threads stuck in trunk
---------------------------+------------------------------------------------
 Reporter:  anders         |        Owner:  phk  
     Type:  defect         |       Status:  new  
 Priority:  high           |    Milestone:       
Component:  varnishd       |      Version:  trunk
 Severity:  critical       |   Resolution:       
 Keywords:  threads stuck  |  
---------------------------+------------------------------------------------
Comment (by anders):

 PHK asked for a backtrace from one of the stuck threads. I got one now,
 from trunk/4144.

 First of all, info threads shows most threads are in __error:

 {{{
   3298 Thread 0x806b418f0 (LWP 101198)  0x0000000800ac929c in __error ()
    from /lib/libthr.so.3
   3297 Thread 0x80bb703d0 (LWP 101199)  0x0000000800ac929c in __error ()
    from /lib/libthr.so.3
   3296 Thread 0x806b3fb40 (LWP 101200)  0x0000000800ac929c in __error ()
    from /lib/libthr.so.3
   3295 Thread 0x82cf45500 (LWP 101204)  0x0000000800ac929c in __error ()
    from /lib/libthr.so.3
   3294 Thread 0x8085e80b0 (LWP 101206)  0x0000000800ac929c in __error ()
    from /lib/libthr.so.3
   3293 Thread 0x806305500 (LWP 100523)  0x0000000800ac929c in __error ()
    from /lib/libthr.so.3
   3292 Thread 0xb659d4050 (LWP 100648)  0x0000000800ac929c in __error ()
    from /lib/libthr.so.3
   3291 Thread 0x806305050 (LWP 100662)  0x0000000800ac929c in __error ()
    from /lib/libthr.so.3
   3290 Thread 0x80cc83d40 (LWP 100731)  0x0000000800ac929c in __error ()
    from /lib/libthr.so.3
 }}}

 Some backtraces for these threads in __eroror:

 1)

 {{{
 (gdb) thread 3291
 [Switching to thread 3291 (Thread 0x806305050 (LWP 100662))]#0
 0x0000000800ac929c in __error () from /lib/libthr.so.3
 (gdb) bt
 #0  0x0000000800ac929c in __error () from /lib/libthr.so.3
 #1  0x0000000800ac8f8c in __error () from /lib/libthr.so.3
 #2  0x0000000800ac41eb in pthread_mutex_getyieldloops_np ()
    from /lib/libthr.so.3
 #3  0x000000000041f7e2 in Lck__Lock (lck=Variable "lck" is not available.
 ) at cache_lck.c:78
 #4  0x000000000042c00b in hcb_lookup (sp=0x809cc0008, noh=0x17e0ebf600)
     at hash_critbit.c:452
 #5  0x000000000041ae3a in HSH_Lookup (sp=0x809cc0008, poh=0x7fffd4aa01e0)
     at cache_hash.c:443
 #6  0x0000000000410a42 in cnt_lookup (sp=0x809cc0008) at
 cache_center.c:734
 #7  0x0000000000412ad3 in CNT_Session (sp=0x809cc0008) at steps.h:38
 #8  0x0000000000422121 in wrk_do_cnt_sess (w=0x7fffd4aa62c0, priv=Variable
 "priv" is not available.
 )
     at cache_pool.c:281
 #9  0x0000000000421417 in wrk_thread_real (qp=0x80100f740,
 shm_workspace=Variable "shm_workspace" is not available.
 )
     at cache_pool.c:176
 #10 0x0000000800abf4d1 in pthread_getprio () from /lib/libthr.so.3
 #11 0x00007fffd48a7000 in ?? ()
 Error accessing memory address 0x7fffd4aa7000: Bad address.
 }}}

 2)

 {{{
 (gdb) thread 3317
 [Switching to thread 3317 (Thread 0x806b4bc70 (LWP 101131))]#0
 0x0000000800ac929c in __error () from /lib/libthr.so.3
 (gdb) bt
 #0  0x0000000800ac929c in __error () from /lib/libthr.so.3
 #1  0x0000000800ac8f8c in __error () from /lib/libthr.so.3
 #2  0x0000000800ac41eb in pthread_mutex_getyieldloops_np ()
    from /lib/libthr.so.3
 #3  0x000000000041f7e2 in Lck__Lock (lck=Variable "lck" is not available.
 ) at cache_lck.c:78
 #4  0x000000000042c00b in hcb_lookup (sp=0x827034008, noh=0x17e0dfd200)
     at hash_critbit.c:452
 #5  0x000000000041ae3a in HSH_Lookup (sp=0x827034008, poh=0x7fffad9681e0)
     at cache_hash.c:443
 #6  0x0000000000410a42 in cnt_lookup (sp=0x827034008) at
 cache_center.c:734
 #7  0x0000000000412ad3 in CNT_Session (sp=0x827034008) at steps.h:38
 #8  0x0000000000422121 in wrk_do_cnt_sess (w=0x7fffad96e2c0, priv=Variable
 "priv" is not available.
 )
     at cache_pool.c:281
 #9  0x0000000000421417 in wrk_thread_real (qp=0x80100f6a0,
 shm_workspace=Variable "shm_workspace" is not available.
 )
     at cache_pool.c:176
 #10 0x0000000800abf4d1 in pthread_getprio () from /lib/libthr.so.3
 #11 0x00007fffad76f000 in ?? ()
 Error accessing memory address 0x7fffad96f000: Bad address.
 }}}

 3)

 {{{
 (gdb) frame 3489
 Error accessing memory address 0x7fffad96f000: Bad address.
 (gdb) bt
 #0  0x0000000800ac929c in __error () from /lib/libthr.so.3
 #1  0x0000000800ac8f8c in __error () from /lib/libthr.so.3
 #2  0x0000000800ac41eb in pthread_mutex_getyieldloops_np ()
    from /lib/libthr.so.3
 #3  0x000000000041f7e2 in Lck__Lock (lck=Variable "lck" is not available.
 ) at cache_lck.c:78
 #4  0x000000000042c00b in hcb_lookup (sp=0x827034008, noh=0x17e0dfd200)
     at hash_critbit.c:452
 #5  0x000000000041ae3a in HSH_Lookup (sp=0x827034008, poh=0x7fffad9681e0)
     at cache_hash.c:443
 #6  0x0000000000410a42 in cnt_lookup (sp=0x827034008) at
 cache_center.c:734
 #7  0x0000000000412ad3 in CNT_Session (sp=0x827034008) at steps.h:38
 #8  0x0000000000422121 in wrk_do_cnt_sess (w=0x7fffad96e2c0, priv=Variable
 "priv" is not available.
 )
     at cache_pool.c:281
 #9  0x0000000000421417 in wrk_thread_real (qp=0x80100f6a0,
 shm_workspace=Variable "shm_workspace" is not available.
 )
     at cache_pool.c:176
 #10 0x0000000800abf4d1 in pthread_getprio () from /lib/libthr.so.3
 #11 0x00007fffad76f000 in ?? ()
 Error accessing memory address 0x7fffad96f000: Bad address.
 }}}


 4)

 {{{
 (gdb) thread 2583
 [Switching to thread 2583 (Thread 0x17e3202ba0 (LWP 102654))]#0
 0x0000000800ac929c in __error () from /lib/libthr.so.3
 (gdb) bt
 #0  0x0000000800ac929c in __error () from /lib/libthr.so.3
 #1  0x0000000800ac8f8c in __error () from /lib/libthr.so.3
 #2  0x0000000800ac41eb in pthread_mutex_getyieldloops_np ()
    from /lib/libthr.so.3
 #3  0x000000000041f7e2 in Lck__Lock (lck=Variable "lck" is not available.
 ) at cache_lck.c:78
 #4  0x000000000042c00b in hcb_lookup (sp=0x828d84008, noh=0x17e0f5c380)
     at hash_critbit.c:452
 #5  0x000000000041ae3a in HSH_Lookup (sp=0x828d84008, poh=0x7fff4e6701e0)
     at cache_hash.c:443
 #6  0x0000000000410a42 in cnt_lookup (sp=0x828d84008) at
 cache_center.c:734
 #7  0x0000000000412ad3 in CNT_Session (sp=0x828d84008) at steps.h:38
 #8  0x0000000000422121 in wrk_do_cnt_sess (w=0x7fff4e6762c0, priv=Variable
 "priv" is not available.
 )
     at cache_pool.c:281
 #9  0x0000000000421417 in wrk_thread_real (qp=0x80100f420,
 shm_workspace=Variable "shm_workspace" is not available.
 )
     at cache_pool.c:176
 #10 0x0000000800abf4d1 in pthread_getprio () from /lib/libthr.so.3
 #11 0x0000000000000000 in ?? ()
 Error accessing memory address 0x7fff4e677000: Bad address.
 }}}

-- 
Ticket URL: <http://varnish.projects.linpro.no/ticket/534#comment:3>
Varnish <http://varnish.projects.linpro.no/>
The Varnish HTTP Accelerator


More information about the varnish-bugs mailing list