[
https://issues.apache.org/jira/browse/DISPATCH-2183?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17377407#comment-17377407
]
Charles E. Rolke commented on DISPATCH-2183:
--------------------------------------------
After adding program stack backtrace to the lock analysis setup then the code
causing the lock inversions are identified.
h4. connector-before-entity_cache when connector creates a new connection
{code:java}
462473116894 TID: 0x513580 LOCK connector ALLOC_INIT
ENTITY_CACHE ==> [ LOCK acquire_uS 0
stack_0: qdrouterd(_dump_locks_lock+0x15e) [0x46bbf9],
stack_1: qdrouterd(sys_mutex_lock+0x13b) [0x46c283],
stack_2: qdrouterd() [0x45230d],
stack_3: qdrouterd(qd_entity_cache_add+0x25) [0x452439],
stack_4: qdrouterd() [0x443f2e],
stack_5: qdrouterd(qd_alloc+0x2a) [0x443f6a],
stack_6: qdrouterd(new_qd_connection_t+0x20) [0x4b5420],
stack_7: qdrouterd(qd_server_connection+0x15) [0x4b6e3c],
stack_8: qdrouterd(try_open_lh+0x27) [0x4b90ce],
stack_9: qdrouterd(try_open_cb+0x50) [0x4b9933], ]
462473117172 TID: 0x513580 UNLOCK connector ALLOC_INIT
ENTITY_CACHE <== [0x1c7c488 UNLOCK acquire_uS 0 use 278 total 278
stack_0: qdrouterd(_dump_locks_unlock+0x1dd) [0x46be90],
stack_1: qdrouterd(sys_mutex_unlock+0x102) [0x46c388],
stack_2: qdrouterd() [0x45240f],
stack_3: qdrouterd(qd_entity_cache_add+0x25) [0x452439],
stack_4: qdrouterd() [0x443f2e],
stack_5: qdrouterd(qd_alloc+0x2a) [0x443f6a],
stack_6: qdrouterd(new_qd_connection_t+0x20) [0x4b5420],
stack_7: qdrouterd(qd_server_connection+0x15) [0x4b6e3c],
stack_8: qdrouterd(try_open_lh+0x27) [0x4b90ce],
stack_9: qdrouterd(try_open_cb+0x50) [0x4b9933], ]
{code}
h4. entity_cache-before-connector during routine management refresh cycle
{code:java}
462480493625 TID: 0x1df81c0 LOCK PYTHON ROUTER
ENTITY_CACHE connector ==> [ LOCK acquire_uS 0
stack_0: qdrouterd(_dump_locks_lock+0x15e) [0x46bbf9],
stack_1: qdrouterd(sys_mutex_lock+0x13b) [0x46c283],
stack_2: qdrouterd(qd_entity_refresh_connector+0x46) [0x44b6ef],
stack_3: /lib64/libffi.so.6(ffi_call_unix64+0x4c) [0x7f3cae2f2b10],
stack_4: /lib64/libffi.so.6(ffi_call+0x1c3) [0x7f3cae2f20a3],
stack_5:
/usr/lib64/python3.9/lib-dynload/_ctypes.cpython-39-x86_64-linux-gnu.so(+0x12b94)
[0x7f3cadf83b94],
stack_6:
/usr/lib64/python3.9/lib-dynload/_ctypes.cpython-39-x86_64-linux-gnu.so(+0x121a0)
[0x7f3cadf831a0],
stack_7: /lib64/libpython3.9.so.1.0(_PyObject_MakeTpCall+0x83)
[0x7f3cbc77aee3],
stack_8: /lib64/libpython3.9.so.1.0(_PyEval_EvalFrameDefault+0x599b)
[0x7f3cbc777b3b],
stack_9: /lib64/libpython3.9.so.1.0(+0x118b1b) [0x7f3cbc77fb1b], ]
462480493773 TID: 0x1df81c0 UNLOCK PYTHON ROUTER
ENTITY_CACHE connector <== [0x1ff66c8 UNLOCK acquire_uS 0 use 148 total
148
stack_0: qdrouterd(_dump_locks_unlock+0x1dd) [0x46be90],
stack_1: qdrouterd(sys_mutex_unlock+0x102) [0x46c388],
stack_2: qdrouterd(qd_entity_refresh_connector+0x2c0) [0x44b969],
stack_3: /lib64/libffi.so.6(ffi_call_unix64+0x4c) [0x7f3cae2f2b10],
stack_4: /lib64/libffi.so.6(ffi_call+0x1c3) [0x7f3cae2f20a3],
stack_5:
/usr/lib64/python3.9/lib-dynload/_ctypes.cpython-39-x86_64-linux-gnu.so(+0x12b94)
[0x7f3cadf83b94],
stack_6:
/usr/lib64/python3.9/lib-dynload/_ctypes.cpython-39-x86_64-linux-gnu.so(+0x121a0)
[0x7f3cadf831a0],
stack_7: /lib64/libpython3.9.so.1.0(_PyObject_MakeTpCall+0x83)
[0x7f3cbc77aee3],
stack_8: /lib64/libpython3.9.so.1.0(_PyEval_EvalFrameDefault+0x599b)
[0x7f3cbc777b3b],
stack_9: /lib64/libpython3.9.so.1.0(+0x118b1b) [0x7f3cbc77fb1b], ]
{code}
> Thread locking analysis
> -----------------------
>
> Key: DISPATCH-2183
> URL: https://issues.apache.org/jira/browse/DISPATCH-2183
> Project: Qpid Dispatch
> Issue Type: Test
> Components: Router Node
> Affects Versions: 1.16.0
> Reporter: Charles E. Rolke
> Assignee: Charles E. Rolke
> Priority: Major
> Labels: performance
> Attachments:
> DISPATCH-2183_3f2bd_router-mesh_three-router-test_routerb.txt,
> DISPATCH-2183_85f805_topology-disposition-routerA.txt
>
>
> This issue holds files related to thread locking analysis tracked in
> [https://github.com/apache/qpid-dispatch/pull/1261|PR-1261]. As the PR
> progresses analysis results will be posted here.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]