-
Bug
-
Resolution: Done
-
Major
-
None
qdrouterd becomes unresponsive (qdstat timeouts, any connection frozen,..) when trying to link route to a destination just being created on other side. See reproducer for details.
Coredump (gcore generated) available on 10.34.84.149 (root/redhat) as core.24217 (big to attach), backtraces are:
Thread 8 (Thread 0x7f8f42e171c0 (LWP 24217)): #0 __lll_lock_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:135 #1 0x00007f8f42570d32 in _L_lock_791 () from /lib64/libpthread.so.0 #2 0x00007f8f42570c38 in __GI___pthread_mutex_lock (mutex=0x143cb20) at pthread_mutex_lock.c:64 #3 0x00007f8f429f3715 in sys_mutex_lock (mutex=<optimized out>) at /usr/src/debug/qpid-dispatch-0.4/src/posix/threading.c:62 #4 0x00007f8f429f6b50 in router_writable_link_handler (context=0x13d4030, link=0x7f8f1c034130) at /usr/src/debug/qpid-dispatch-0.4/src/router_node.c:460 #5 0x00007f8f429ea4d6 in do_writable (pn_link=0x7f8f1c042fb0) at /usr/src/debug/qpid-dispatch-0.4/src/container.c:215 #6 process_handler (unused=<optimized out>, qd_conn=<optimized out>, container=0x13b8650) at /usr/src/debug/qpid-dispatch-0.4/src/container.c:446 #7 handler (handler_context=0x13b8650, conn_context=<optimized out>, event=event@entry=QD_CONN_EVENT_PROCESS, qd_conn=<optimized out>) at /usr/src/debug/qpid-dispatch-0.4/src/container.c:496 #8 0x00007f8f429fc9ac in process_connector (cxtr=0x7f8f14048e30, qd_server=0x13dd5d0) at /usr/src/debug/qpid-dispatch-0.4/src/server.c:398 #9 thread_run (arg=<optimized out>) at /usr/src/debug/qpid-dispatch-0.4/src/server.c:626 #10 0x00007f8f429fd5c0 in qd_server_run (qd=0x119f030) at /usr/src/debug/qpid-dispatch-0.4/src/server.c:959 #11 0x0000000000401cd8 in main_process (config_path=config_path@entry=0x7ffff625a6be "/etc/qpid-dispatch/qdrouterd.conf", python_pkgdir=python_pkgdir@entry=0x402401 "/usr/lib/qpid-dispatch/python", fd=fd@entry=2) at /usr/src/debug/qpid-dispatch-0.4/router/src/main.c:135 #12 0x0000000000401950 in main (argc=3, argv=0x7ffff62594a8) at /usr/src/debug/qpid-dispatch-0.4/router/src/main.c:335 Thread 7 (Thread 0x7f8f2effd700 (LWP 24224)): #0 pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185 #1 0x00007f8f429fc819 in thread_run (arg=<optimized out>) at /usr/src/debug/qpid-dispatch-0.4/src/server.c:508 #2 0x00007f8f4256edf5 in start_thread (arg=0x7f8f2effd700) at pthread_create.c:308 #3 0x00007f8f41aca1ad in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:113 Thread 6 (Thread 0x7f8f2f7fe700 (LWP 24223)): #0 __lll_lock_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:135 #1 0x00007f8f42570d32 in _L_lock_791 () from /lib64/libpthread.so.0 #2 0x00007f8f42570c38 in __GI___pthread_mutex_lock (mutex=0x143cb20) at pthread_mutex_lock.c:64 #3 0x00007f8f429f3715 in sys_mutex_lock (mutex=<optimized out>) at /usr/src/debug/qpid-dispatch-0.4/src/posix/threading.c:62 #4 0x00007f8f429fa1c2 in qd_router_send (qd=qd@entry=0x119f030, address=address@entry=0x7f8f2000c0a0, msg=msg@entry=0x7f8f2000faa0) at /usr/src/debug/qpid-dispatch-0.4/src/router_node.c:2140 #5 0x00007f8f429fa438 in qd_router_send2 (qd=0x119f030, address=<optimized out>, msg=msg@entry=0x7f8f2000faa0) at /usr/src/debug/qpid-dispatch-0.4/src/router_node.c:2208 #6 0x00007f8f429f4425 in qd_python_send (self=<dispatch.IoAdapter at remote 0x7f8f36265ee0>, args=<optimized out>) at /usr/src/debug/qpid-dispatch-0.4/src/python_embedded.c:608 #7 0x00007f8f41e75b94 in call_function (oparg=<optimized out>, pp_stack=0x7f8f2f7fcc90) at /usr/src/debug/Python-2.7.5/Python/ceval.c:4098 #8 PyEval_EvalFrameEx ( f=f@entry=Frame 0x7f8f240010b0, for file /usr/lib/qpid-dispatch/python/qpid_dispatch_internal/router/engine.py, line 234, in send (self=<RouterEngine(node_tracker=<NodeTracker(neighbor_max_age=3, next_maskbit=1, container=<...>, nodes_by_link_id={}, maskbits=[True, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, ...(truncated), throwflag=throwflag@entry=0) at /usr/src/debug/Python-2.7.5/Python/ceval.c:2740 #9 0x00007f8f41e75950 in fast_function (nk=<optimized out>, na=3, n=3, pp_stack=0x7f8f2f7fcdf0, func=<function at remote 0x7f8f42cb3848>) at /usr/src/debug/Python-2.7.5/Python/ceval.c:4184 #10 call_function (oparg=<optimized out>, pp_stack=0x7f8f2f7fcdf0) at /usr/src/debug/Python-2.7.5/Python/ceval.c:4119 #11 PyEval_EvalFrameEx ( f=f@entry=Frame 0x7f8f24000ad0, for file /usr/lib/qpid-dispatch/python/qpid_dispatch_internal/router/hello.py, line 42, in tick (self=<HelloProtocol(container=<RouterEngine(node_tracker=<NodeTracker(neighbor_max_age=3, next_maskbit=1, container=<...>, nodes_by_link_id={}, maskbits=[True, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, N...(truncated), throwflag=throwflag@entry=0) at /usr/src/debug/Python-2.7.5/Python/ceval.c:2740 #12 0x00007f8f41e75950 in fast_function (nk=<optimized out>, na=2, n=2, pp_stack=0x7f8f2f7fcf50, func=<function at remote 0x7f8f42d1dde8>) at /usr/src/debug/Python-2.7.5/Python/ceval.c:4184 #13 call_function (oparg=<optimized out>, pp_stack=0x7f8f2f7fcf50) at /usr/src/debug/Python-2.7.5/Python/ceval.c:4119 #14 PyEval_EvalFrameEx ( f=f@entry=Frame 0x7f8f240008e0, for file /usr/lib/qpid-dispatch/python/qpid_dispatch_internal/router/engine.py, line 121, in handleTimerTick (self=<RouterEngine(node_tracker=<NodeTracker(neighbor_max_age=3, next_maskbit=1, container=<...>, nodes_by_link_id={}, maskbits=[True, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, N...(truncated), throwflag=throwflag@entry=0) at /usr/src/debug/Python-2.7.5/Python/ceval.c:2740 #15 0x00007f8f41e771ad in PyEval_EvalCodeEx (co=<optimized out>, globals=<optimized out>, locals=locals@entry=0x0, args=args@entry=0x7f8f369ecf28, argcount=1, kws=kws@entry=0x0, kwcount=kwcount@entry=0, defs=defs@entry=0x0, defcount=defcount@entry=0, closure=0x0) at /usr/src/debug/Python-2.7.5/Python/ceval.c:3330 #16 0x00007f8f41e04098 in function_call (func=<function at remote 0x7f8f42cb3488>, arg=(<RouterEngine(node_tracker=<NodeTracker(neighbor_max_age=3, next_maskbit=1, container=<...>, nodes_by_link_id={}, maskbits=[True, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None,...(truncated), kw=0x0) at /usr/src/debug/Python-2.7.5/Objects/funcobject.c:526 #17 0x00007f8f41ddf073 in PyObject_Call (func=func@entry=<function at remote 0x7f8f42cb3488>, arg=arg@entry=(<RouterEngine(node_tracker=<NodeTracker(neighbor_max_age=3, next_maskbit=1, container=<...>, nodes_by_link_id={}, maskbits=[True, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None,...(truncated), kw=kw@entry=0x0) at /usr/src/debug/Python-2.7.5/Objects/abstract.c:2529 #18 0x00007f8f41dee085 in instancemethod_call (func=<function at remote 0x7f8f42cb3488>, arg=(<RouterEngine(node_tracker=<NodeTracker(neighbor_max_age=3, next_maskbit=1, container=<...>, nodes_by_link_id={}, maskbits=[True, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None,...(truncated), kw=0x0) at /usr/src/debug/Python-2.7.5/Objects/classobject.c:2602 #19 0x00007f8f41ddf073 in PyObject_Call (func=func@entry=<instancemethod at remote 0x7f8f369f0af0>, arg=arg@entry=(), kw=<optimized out>) at /usr/src/debug/Python-2.7.5/Objects/abstract.c:2529 #20 0x00007f8f41e70ff7 in PyEval_CallObjectWithKeywords (func=<instancemethod at remote 0x7f8f369f0af0>, arg=arg@entry=(), kw=kw@entry=0x0) at /usr/src/debug/Python-2.7.5/Python/ceval.c:3967 #21 0x00007f8f41ddf027 in PyObject_CallObject (o=<optimized out>, a=a@entry=()) at /usr/src/debug/Python-2.7.5/Objects/abstract.c:2517 #22 0x00007f8f429fb601 in qd_pyrouter_tick (router=router@entry=0x13d4030) at /usr/src/debug/qpid-dispatch-0.4/src/router_pynode.c:706 #23 0x00007f8f429f5ed9 in qd_router_timer_handler (context=0x13d4030) at /usr/src/debug/qpid-dispatch-0.4/src/router_node.c:1913 #24 0x00007f8f429fc337 in thread_run (arg=<optimized out>) at /usr/src/debug/qpid-dispatch-0.4/src/server.c:490 #25 0x00007f8f4256edf5 in start_thread (arg=0x7f8f2f7fe700) at pthread_create.c:308 #26 0x00007f8f41aca1ad in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:113 Thread 5 (Thread 0x7f8f2ffff700 (LWP 24222)): #0 __lll_lock_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:135 #1 0x00007f8f42570d32 in _L_lock_791 () from /lib64/libpthread.so.0 #2 0x00007f8f42570c38 in __GI___pthread_mutex_lock (mutex=0x143cb20) at pthread_mutex_lock.c:64 #3 0x00007f8f429f3715 in sys_mutex_lock (mutex=<optimized out>) at /usr/src/debug/qpid-dispatch-0.4/src/posix/threading.c:62 #4 0x00007f8f429f8f2e in router_outgoing_link_handler (context=0x13d4030, link=0x7f8f1c034230) at /usr/src/debug/qpid-dispatch-0.4/src/router_node.c:1508 #5 0x00007f8f429ea1a0 in setup_outgoing_link (pn_link=0x7f8f1c032f50, container=0x13b8650) at /usr/src/debug/qpid-dispatch-0.4/src/container.c:144 #6 process_handler (unused=<optimized out>, qd_conn=0x7f8f20028ea0, container=0x13b8650) at /usr/src/debug/qpid-dispatch-0.4/src/container.c:385 #7 handler (handler_context=0x13b8650, conn_context=<optimized out>, event=event@entry=QD_CONN_EVENT_PROCESS, qd_conn=0x7f8f20028ea0) at /usr/src/debug/qpid-dispatch-0.4/src/container.c:496 #8 0x00007f8f429fc9ac in process_connector (cxtr=0x7f8f2001bfa0, qd_server=0x13dd5d0) at /usr/src/debug/qpid-dispatch-0.4/src/server.c:398 #9 thread_run (arg=<optimized out>) at /usr/src/debug/qpid-dispatch-0.4/src/server.c:626 #10 0x00007f8f4256edf5 in start_thread (arg=0x7f8f2ffff700) at pthread_create.c:308 #11 0x00007f8f41aca1ad in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:113 Thread 4 (Thread 0x7f8f34807700 (LWP 24221)): #0 pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185 #1 0x00007f8f429fc819 in thread_run (arg=<optimized out>) at /usr/src/debug/qpid-dispatch-0.4/src/server.c:508 #2 0x00007f8f4256edf5 in start_thread (arg=0x7f8f34807700) at pthread_create.c:308 #3 0x00007f8f41aca1ad in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:113 Thread 3 (Thread 0x7f8f35008700 (LWP 24220)): #0 __lll_lock_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:135 #1 0x00007f8f42570d32 in _L_lock_791 () from /lib64/libpthread.so.0 #2 0x00007f8f42570c38 in __GI___pthread_mutex_lock (mutex=0x143cb20) at pthread_mutex_lock.c:64 #3 0x00007f8f429f3715 in sys_mutex_lock (mutex=<optimized out>) at /usr/src/debug/qpid-dispatch-0.4/src/posix/threading.c:62 #4 0x00007f8f429f6b50 in router_writable_link_handler (context=0x13d4030, link=0x7f8f3001bdd0) at /usr/src/debug/qpid-dispatch-0.4/src/router_node.c:460 #5 0x00007f8f429ea4d6 in do_writable (pn_link=0x7f8f3002d7c0) at /usr/src/debug/qpid-dispatch-0.4/src/container.c:215 #6 process_handler (unused=<optimized out>, qd_conn=<optimized out>, container=0x13b8650) at /usr/src/debug/qpid-dispatch-0.4/src/container.c:446 #7 handler (handler_context=0x13b8650, conn_context=<optimized out>, event=event@entry=QD_CONN_EVENT_PROCESS, qd_conn=<optimized out>) at /usr/src/debug/qpid-dispatch-0.4/src/container.c:496 #8 0x00007f8f429fc9ac in process_connector (cxtr=0x7f8f1c012f30, qd_server=0x13dd5d0) at /usr/src/debug/qpid-dispatch-0.4/src/server.c:398 #9 thread_run (arg=<optimized out>) at /usr/src/debug/qpid-dispatch-0.4/src/server.c:626 #10 0x00007f8f4256edf5 in start_thread (arg=0x7f8f35008700) at pthread_create.c:308 #11 0x00007f8f41aca1ad in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:113 Thread 2 (Thread 0x7f8f35809700 (LWP 24219)): #0 __lll_lock_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:135 #1 0x00007f8f42570d32 in _L_lock_791 () from /lib64/libpthread.so.0 #2 0x00007f8f42570c38 in __GI___pthread_mutex_lock (mutex=0x7f8f1c033b80) at pthread_mutex_lock.c:64 #3 0x00007f8f429f3715 in sys_mutex_lock (mutex=<optimized out>) at /usr/src/debug/qpid-dispatch-0.4/src/posix/threading.c:62 #4 0x00007f8f429fda0e in qd_connection_invoke_deferred (conn=conn@entry=0x7f8f1c0208a0, call=call@entry= 0x7f8f429f8a00 <qd_router_open_routed_link>, context=0x7f8f2001d600) at /usr/src/debug/qpid-dispatch-0.4/src/server.c:1135 #5 0x00007f8f429f8943 in router_link_attach_handler (context=0x13d4030, link=<optimized out>) at /usr/src/debug/qpid-dispatch-0.4/src/router_node.c:1632 #6 0x00007f8f429ea395 in handle_link_open (container=<optimized out>, pn_link=0x7f8f1c043990) at /usr/src/debug/qpid-dispatch-0.4/src/container.c:201 #7 process_handler (unused=<optimized out>, qd_conn=0x7f8f3000cb10, container=0x13b8650) at /usr/src/debug/qpid-dispatch-0.4/src/container.c:389 #8 handler (handler_context=0x13b8650, conn_context=<optimized out>, event=event@entry=QD_CONN_EVENT_PROCESS, qd_conn=0x7f8f3000cb10) at /usr/src/debug/qpid-dispatch-0.4/src/container.c:496 #9 0x00007f8f429fc9ac in process_connector (cxtr=0x7f8f30010250, qd_server=0x13dd5d0) at /usr/src/debug/qpid-dispatch-0.4/src/server.c:398 #10 thread_run (arg=<optimized out>) at /usr/src/debug/qpid-dispatch-0.4/src/server.c:626 #11 0x00007f8f4256edf5 in start_thread (arg=0x7f8f35809700) at pthread_create.c:308 #12 0x00007f8f41aca1ad in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:113 Thread 1 (Thread 0x7f8f3600a700 (LWP 24218)): #0 __lll_lock_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:135 #1 0x00007f8f42570d32 in _L_lock_791 () from /lib64/libpthread.so.0 #2 0x00007f8f42570c38 in __GI___pthread_mutex_lock (mutex=0x143cb20) at pthread_mutex_lock.c:64 #3 0x00007f8f429f3715 in sys_mutex_lock (mutex=<optimized out>) at /usr/src/debug/qpid-dispatch-0.4/src/posix/threading.c:62 #4 0x00007f8f429f8f2e in router_outgoing_link_handler (context=0x13d4030, link=0x7f8f280419a0) at /usr/src/debug/qpid-dispatch-0.4/src/router_node.c:1508 #5 0x00007f8f429ea1a0 in setup_outgoing_link (pn_link=0x7f8f28040380, container=0x13b8650) at /usr/src/debug/qpid-dispatch-0.4/src/container.c:144 #6 process_handler (unused=<optimized out>, qd_conn=0x7f8f20028dd0, container=0x13b8650) at /usr/src/debug/qpid-dispatch-0.4/src/container.c:385 #7 handler (handler_context=0x13b8650, conn_context=<optimized out>, event=event@entry=QD_CONN_EVENT_PROCESS, qd_conn=0x7f8f20028dd0) at /usr/src/debug/qpid-dispatch-0.4/src/container.c:496 #8 0x00007f8f429fc9ac in process_connector (cxtr=0x7f8f2001be10, qd_server=0x13dd5d0) at /usr/src/debug/qpid-dispatch-0.4/src/server.c:398 #9 thread_run (arg=<optimized out>) at /usr/src/debug/qpid-dispatch-0.4/src/server.c:626 #10 0x00007f8f4256edf5 in start_thread (arg=0x7f8f3600a700) at pthread_create.c:308 #11 0x00007f8f41aca1ad in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:113