On Wed, 10 Jun 2009, Howard Chu wrote:

Please try updated HEAD.

A test054 slapd livelocked:

 >    t...@1  a  l...@1   ?()   running          in  __lwp_wait()
      t...@2  a  l...@2   slapd_daemon_task()   running          in  _poll()
      t...@3  a  l...@3   ldap_int_thread_pool_wrapper()   sleep on 0x3fe4a8  
in  __lwp_park()
      t...@4  a  l...@4   ldap_int_thread_pool_wrapper()   sleep on 0x3fe4a8  
in  __lwp_park()
      t...@5  a  l...@5   ldap_int_thread_pool_wrapper()   running          in  
lwp_yield()
t...@6 a l...@6 ldap_int_thread_pool_wrapper() sleep on 0x3fe4a8 in __lwp_park() t...@1 (l...@1) stopped in __lwp_wait at 0xff31ff64
0xff31ff64: __lwp_wait+0x0004:  ta       %icc,0x00000008
current thread: t...@1
  [1] __lwp_wait(0x2, 0xffbff554, 0xff18fb04, 0xff1424fc, 0x1, 0xffbff51c), at 
0xff31ff64
  [2] lwp_wait(0x2, 0xffbff554, 0x2d388, 0xff1849e8, 0x5, 0xffbff54c), at 
0xff14d1cc
[3] _thrp_join(0x2, 0x0, 0x0, 0x1, 0x81010100, 0xff00), at 0xff1490c4 =>[4] ldap_pvt_thread_join(thread = 2U, thread_return = (nil)), line 197 in "thr_posix.c"
  [5] slapd_daemon(), line 2700 in "daemon.c"
  [6] main(argc = 8, argv = 0xffbff774), line 950 in "main.c"
Current function is slapd_daemon_task
 2325                   SLAP_EVENT_WAIT( tvp, &ns );
t...@2 (l...@2) stopped in _poll at 0xff31e238
0xff31e238: _poll+0x0004:       ta       %icc,0x00000008
current thread: t...@2
  [1] _poll(0xfe3fbb90, 0x4, 0xffffffffffffffff, 0xfffffffffffffff8, 0x0, 
0xfe3fbd99), at 0xff31e238
[2] select_large_fdset(0x12, 0x20, 0xfe3fbd98, 0x0, 0xfe3fbd98, 0xfe3fbd98), at 0xff2d2b6c =>[3] slapd_daemon_task(ptr = (nil)), line 2325 in "daemon.c"
Current function is ldap_pvt_thread_cond_wait
  277           return ERRVAL( pthread_cond_wait( cond, mutex ) );
t...@3 (l...@3) stopped in __lwp_park at 0xff1554b0
0xff1554b0: __lwp_park+0x0010:  ta       %icc,0x00000008
current thread: t...@3
  [1] __lwp_park(0x0, 0x0, 0x0, 0x1, 0xff168000, 0x0), at 0xff1554b0
  [2] cond_wait_queue(0x3fe4a8, 0xff168c08, 0x0, 0x0, 0xff070400, 0xff168000), 
at 0xff1526b8
  [3] _cond_wait_cancel(0x3fe4a8, 0x3fe490, 0xfdbffc98, 0x1, 0x3, 0x0), at 
0xff152e74
[4] _pthread_cond_wait(0x3fe4a8, 0x3fe490, 0xfdbffe0c, 0x1, 0x0, 0xfdbffd81), at 0xff152eb0 =>[5] ldap_pvt_thread_cond_wait(cond = 0x3fe4a8, mutex = 0x3fe490), line 277 in "thr_posix.c"
  [6] ldap_int_thread_pool_wrapper(xpool = 0x3fe488), line 689 in "tpool.c"
Current function is ldap_pvt_thread_cond_wait
  277           return ERRVAL( pthread_cond_wait( cond, mutex ) );
t...@4 (l...@4) stopped in __lwp_park at 0xff1554b0
0xff1554b0: __lwp_park+0x0010:  ta       %icc,0x00000008
current thread: t...@4
  [1] __lwp_park(0x0, 0x0, 0x0, 0x1, 0xff168000, 0x0), at 0xff1554b0
  [2] cond_wait_queue(0x3fe4a8, 0xff168c08, 0x0, 0x0, 0xff070600, 0xff168000), 
at 0xff1526b8
  [3] _cond_wait_cancel(0x3fe4a8, 0x3fe490, 0x0, 0xff168000, 0x3, 0x0), at 
0xff152e74
[4] _pthread_cond_wait(0x3fe4a8, 0x3fe490, 0xfd3ffe0c, 0x1, 0x0, 0xfd3ffd81), at 0xff152eb0 =>[5] ldap_pvt_thread_cond_wait(cond = 0x3fe4a8, mutex = 0x3fe490), line 277 in "thr_posix.c"
  [6] ldap_int_thread_pool_wrapper(xpool = 0x3fe488), line 689 in "tpool.c"
Current function is ldap_pvt_thread_yield
  228           thr_yield();
t...@5 (l...@5) stopped in lwp_yield at 0xff15556c
0xff15556c: lwp_yield+0x0008: retl current thread: t...@5 [1] lwp_yield(0x0, 0x0, 0xff070800, 0x0, 0x0, 0x0), at 0xff15556c =>[2] ldap_pvt_thread_yield(), line 228 in "thr_posix.c"
  [3] syncprov_op_mod(op = 0x52c508, rs = 0xfcbffcac), line 1964 in "syncprov.c"
  [4] overlay_op_walk(op = 0x52c508, rs = 0xfcbffcac, which = op_add, oi = 0x4326c8, on = 
0x4327d0), line 659 in "backover.c"
  [5] over_op_func(op = 0x52c508, rs = 0xfcbffcac, which = op_add), line 721 in 
"backover.c"
  [6] over_op_add(op = 0x52c508, rs = 0xfcbffcac), line 767 in "backover.c"
  [7] fe_op_add(op = 0x52c508, rs = 0xfcbffcac), line 334 in "add.c"
  [8] do_add(op = 0x52c508, rs = 0xfcbffcac), line 194 in "add.c"
  [9] connection_operation(ctx = 0xfcbffe0c, arg_v = 0x52c508), line 1115 in 
"connection.c"
  [10] connection_read_thread(ctx = 0xfcbffe0c, argv = 0x11), line 1248 in 
"connection.c"
  [11] ldap_int_thread_pool_wrapper(xpool = 0x3fe488), line 698 in "tpool.c"
Current function is ldap_pvt_thread_cond_wait
  277           return ERRVAL( pthread_cond_wait( cond, mutex ) );
t...@6 (l...@6) stopped in __lwp_park at 0xff1554b0
0xff1554b0: __lwp_park+0x0010:  ta       %icc,0x00000008
current thread: t...@6
  [1] __lwp_park(0x0, 0x0, 0x0, 0x1, 0xff168000, 0x0), at 0xff1554b0
  [2] cond_wait_queue(0x3fe4a8, 0xff168c08, 0x0, 0x0, 0xff070a00, 0xff168000), 
at 0xff1526b8
  [3] _cond_wait_cancel(0x3fe4a8, 0x3fe490, 0xfc3ffc98, 0x1, 0x3, 0x0), at 
0xff152e74
[4] _pthread_cond_wait(0x3fe4a8, 0x3fe490, 0xfc3ffe0c, 0x1, 0x0, 0xfc3ffd81), at 0xff152eb0 =>[5] ldap_pvt_thread_cond_wait(cond = 0x3fe4a8, mutex = 0x3fe490), line 277 in "thr_posix.c"
  [6] ldap_int_thread_pool_wrapper(xpool = 0x3fe488), line 689 in "tpool.c"

Reply via email to