[ 
https://issues.apache.org/jira/browse/DISPATCH-2195?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17379354#comment-17379354
 ] 

ASF GitHub Bot commented on DISPATCH-2195:
------------------------------------------

jiridanek commented on a change in pull request #1295:
URL: https://github.com/apache/qpid-dispatch/pull/1295#discussion_r668054841



##########
File path: src/server.c
##########
@@ -919,12 +919,12 @@ static void qd_connection_free(qd_connection_t *qd_conn)
 
     sys_mutex_lock(qd_server->lock);
     DEQ_REMOVE(qd_server->conn_list, qd_conn);
+    sys_mutex_unlock(qd_server->lock);
 
     // If counted for policy enforcement, notify it has closed
     if (qd_conn->policy_counted) {
         qd_policy_socket_close(qd_server->qd->policy, qd_conn);

Review comment:
       For easier reference, TSan is not happy with `qd_policy_socket_close`
   
   
https://github.com/apache/qpid-dispatch/pull/1295/checks?check_run_id=3032721509#step:25:1109
   
https://github.com/apache/qpid-dispatch/pull/1295/checks?check_run_id=3032721509#step:25:2139
   
   ```
   21: E           WARNING: ThreadSanitizer: data race (pid=1862)
   21: E             Write of size 8 at 0x000000528f08 by thread T4 (mutexes: 
write M308):
   21: E               #0 qd_policy_socket_close 
/home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/src/policy.c:291 
(qdrouterd+0x47fd04)
   21: E               #1 qd_connection_free 
/home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/src/server.c:926 
(qdrouterd+0x4def8f)
   21: E               #2 thread_run 
/home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/src/server.c:1127 
(qdrouterd+0x4e3d5b)
   21: E               #3 _thread_init 
/home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/src/posix/threading.c:172
 (qdrouterd+0x48667d)
   21: E           
   21: E             Previous read of size 8 at 0x000000528f08 by thread T3:
   21: E               #0 qd_policy_socket_close 
/home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/src/policy.c:318 
(qdrouterd+0x47fe79)
   21: E               #1 qd_connection_free 
/home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/src/server.c:926 
(qdrouterd+0x4def8f)
   21: E               #2 thread_run 
/home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/src/server.c:1127 
(qdrouterd+0x4e3d5b)
   21: E               #3 _thread_init 
/home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/src/posix/threading.c:172
 (qdrouterd+0x48667d)
   21: E           
   21: E             Location is global 'n_connections' of size 8 at 
0x000000528f08 (qdrouterd+0x000000528f08)
   21: E           
   21: E             Mutex M308 (0x7b1000000e80) created at:
   21: E               #0 pthread_mutex_init <null> (libtsan.so.0+0x49603)
   21: E               #1 sys_mutex 
/home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/src/posix/threading.c:43
 (qdrouterd+0x4866cc)
   21: E               #2 qd_policy 
/home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/src/policy.c:124 
(qdrouterd+0x47f352)
   21: E               #3 qd_dispatch_prepare 
/home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/src/dispatch.c:338 
(qdrouterd+0x4661cf)
   21: E               #4 ffi_call_unix64 <null> (libffi.so.6+0x6c03)
   21: E               #5 main_process 
/home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/router/src/main.c:97
 (qdrouterd+0x426c6c)
   21: E               #6 main 
/home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/router/src/main.c:369
 (qdrouterd+0x42622c)
   21: E           
   21: E             Thread T4 (tid=1872, running) created by main thread at:
   21: E               #0 pthread_create <null> (libtsan.so.0+0x5bf45)
   21: E               #1 sys_thread 
/home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/src/posix/threading.c:181
 (qdrouterd+0x486b0c)
   21: E               #2 qd_server_run 
/home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/src/server.c:1499 
(qdrouterd+0x4e490c)
   21: E               #3 main_process 
/home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/router/src/main.c:115
 (qdrouterd+0x426ccc)
   21: E               #4 main 
/home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/router/src/main.c:369
 (qdrouterd+0x42622c)
   21: E           
   21: E             Thread T3 (tid=1871, running) created by main thread at:
   21: E               #0 pthread_create <null> (libtsan.so.0+0x5bf45)
   21: E               #1 sys_thread 
/home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/src/posix/threading.c:181
 (qdrouterd+0x486b0c)
   21: E               #2 qd_server_run 
/home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/src/server.c:1499 
(qdrouterd+0x4e490c)
   21: E               #3 main_process 
/home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/router/src/main.c:115
 (qdrouterd+0x426ccc)
   21: E               #4 main 
/home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/router/src/main.c:369
 (qdrouterd+0x42622c)
   21: E           
   21: E           SUMMARY: ThreadSanitizer: data race 
/home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/src/policy.c:291 in 
qd_policy_socket_close
   21: E           ==================
   21: E           ThreadSanitizer: reported 1 warnings
   21: E           <<<<
   ```




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


> Deadlock possible with SERVER - PYTHON lock inversion
> -----------------------------------------------------
>
>                 Key: DISPATCH-2195
>                 URL: https://issues.apache.org/jira/browse/DISPATCH-2195
>             Project: Qpid Dispatch
>          Issue Type: Test
>          Components: Router Node
>    Affects Versions: 1.16.1
>            Reporter: Charles E. Rolke
>            Assignee: Charles E. Rolke
>            Priority: Major
>             Fix For: 1.17.0
>
>
> Analysis in DISPATCH-2183 shows that PYTHON and SERVER locks are taken in 
> both orders and could cause a deadlock.



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