You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "Ken Giusti (Jira)" <ji...@apache.org> on 2021/08/10 21:09:00 UTC

[jira] [Updated] (DISPATCH-2134) qdr_link_process_initial_delivery_CT race clearing link pointer

     [ https://issues.apache.org/jira/browse/DISPATCH-2134?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Ken Giusti updated DISPATCH-2134:
---------------------------------
    Fix Version/s:     (was: 1.17.0)
                   1.18.0

> qdr_link_process_initial_delivery_CT race clearing link pointer
> ---------------------------------------------------------------
>
>                 Key: DISPATCH-2134
>                 URL: https://issues.apache.org/jira/browse/DISPATCH-2134
>             Project: Qpid Dispatch
>          Issue Type: Bug
>          Components: Protocol Adaptors
>    Affects Versions: 1.16.0
>            Reporter: Ken Giusti
>            Assignee: Ken Giusti
>            Priority: Major
>              Labels: race-condition, tsan
>             Fix For: 1.18.0
>
>
> TSAN detects a race between an I/O thread clearing a deliveries' safe pointer to its owning link while the core thread is setting the same safe pointer
>  
> 70: WARNING: ThreadSanitizer: data race (pid=644088) 
> 70: Write of size 8 at 0x7b500000feb0 by thread T1: 
> 70: #0 qd_alloc_set_safe_ptr /home/kgiusti/work/dispatch/qpid-dispatch/include/qpid/dispatch/alloc_pool.h:96 (libqpid-dispatch.so+0xeed90) 
> 70: #1 set_safe_ptr_qdr_link_t /home/kgiusti/work/dispatch/qpid-dispatch/src/router_core/router_core.c:35 (libqpid-dispatch.so+0xef449) 
> 70: #2 qdr_link_process_initial_delivery_CT /home/kgiusti/work/dispatch/qpid-dispatch/src/router_core/connections.c:1678 (libqpid-dispatch.so+0xcccbe) 
> 70: #3 qdr_link_inbound_first_attach_CT /home/kgiusti/work/dispatch/qpid-dispatch/src/router_core/connections.c:1801 (libqpid-dispatch.so+0xcd6cb) 
> 70: #4 router_core_thread /home/kgiusti/work/dispatch/qpid-dispatch/src/router_core/router_core_thread.c:239 (libqpid-dispatch.so+0xfb2ae) 
> 70: #5 _thread_init /home/kgiusti/work/dispatch/qpid-dispatch/src/posix/threading.c:172 (libqpid-dispatch.so+0xad37a) 
> 70: #6 <null> <null> (libtsan.so.0+0x2d33f) 
> 70: 
> 70: Previous write of size 8 at 0x7b500000feb0 by thread T3 (mutexes: write M333): 
> 70: #0 qd_nullify_safe_ptr /home/kgiusti/work/dispatch/qpid-dispatch/include/qpid/dispatch/alloc_pool.h:91 (libqpid-dispatch.so+0x103843) 
> 70: #1 qdr_link_process_deliveries /home/kgiusti/work/dispatch/qpid-dispatch/src/router_core/transfer.c:239 (libqpid-dispatch.so+0x105033) 
> 70: #2 qdr_http_push /home/kgiusti/work/dispatch/qpid-dispatch/src/adaptors/http2/http2_adaptor.c:1607 (libqpid-dispatch.so+0x147bfd) 
> 70: #3 qdr_connection_process /home/kgiusti/work/dispatch/qpid-dispatch/src/router_core/connections.c:414 (libqpid-dispatch.so+0xc4bec) 
> 70: #4 handle_connection_event /home/kgiusti/work/dispatch/qpid-dispatch/src/adaptors/http2/http2_adaptor.c:2435 (libqpid-dispatch.so+0x14ee55) 
> 70: #5 handle_event_with_context /home/kgiusti/work/dispatch/qpid-dispatch/src/server.c:802 (libqpid-dispatch.so+0x12ecb6) 
> 70: #6 do_handle_raw_connection_event /home/kgiusti/work/dispatch/qpid-dispatch/src/server.c:808 (libqpid-dispatch.so+0x12ed08) 
> 70: #7 handle /home/kgiusti/work/dispatch/qpid-dispatch/src/server.c:1089 (libqpid-dispatch.so+0x1304e6) 
> 70: #8 thread_run /home/kgiusti/work/dispatch/qpid-dispatch/src/server.c:1121 (libqpid-dispatch.so+0x13063a) 
> 70: #9 _thread_init /home/kgiusti/work/dispatch/qpid-dispatch/src/posix/threading.c:172 (libqpid-dispatch.so+0xad37a) 
> 70: #10 <null> <null> (libtsan.so.0+0x2d33f)



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@qpid.apache.org
For additional commands, e-mail: dev-help@qpid.apache.org