[ 
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]

Reply via email to