This is an automated email from the ASF dual-hosted git repository.

kgiusti pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/qpid-dispatch.git


The following commit(s) were added to refs/heads/main by this push:
     new ac8b1ce  DISPATCH-2146: TSAN suppression file cleanup
ac8b1ce is described below

commit ac8b1cee812cacbd0193302fad5c4e796290abec
Author: Kenneth Giusti <kgiu...@apache.org>
AuthorDate: Tue May 18 17:20:43 2021 -0400

    DISPATCH-2146: TSAN suppression file cleanup
    
    Remove stale suppressions.  Open tracking JIRAs for each remaining error.
    
    This closes #1228
---
 src/router_core/connections.c | 12 +++++-
 tests/tsan.supp               | 98 ++++++++++++++++++++++++++++++-------------
 2 files changed, 78 insertions(+), 32 deletions(-)

diff --git a/src/router_core/connections.c b/src/router_core/connections.c
index 7d60e42..2857906 100644
--- a/src/router_core/connections.c
+++ b/src/router_core/connections.c
@@ -569,6 +569,15 @@ static void qdr_link_setup_histogram(qdr_connection_t 
*conn, qd_direction_t dir,
 }
 
 
+// used by the TSAN suppression file to mask the read/write races
+// caused by modifying the deliveries' conn_id and link_id while in flight
+void tsan_reset_delivery_ids(qdr_delivery_t *dlv, uint64_t conn_id, uint64_t 
link_id)
+{
+    dlv->conn_id = conn_id;
+    dlv->link_id = link_id;
+}
+
+
 qdr_link_t *qdr_link_first_attach(qdr_connection_t *conn,
                                   qd_direction_t    dir,
                                   qdr_terminus_t   *source,
@@ -618,8 +627,7 @@ qdr_link_t *qdr_link_first_attach(qdr_connection_t *conn,
     //
 
     if (initial_delivery) {
-        initial_delivery->conn_id = link->conn->identity;
-        initial_delivery->link_id = link->identity;
+        tsan_reset_delivery_ids(initial_delivery, link->conn->identity, 
link->identity);
     }
 
     if      (qdr_terminus_has_capability(local_terminus, 
QD_CAPABILITY_ROUTER_CONTROL))
diff --git a/tests/tsan.supp b/tests/tsan.supp
index 4248dc4..cc41c6d 100644
--- a/tests/tsan.supp
+++ b/tests/tsan.supp
@@ -1,51 +1,89 @@
 # ThreadSanitizer (tsan) suppression file
 #
-race:libqpid-proton-proactor
-deadlock:libpython
+# NOTE WELL: When adding a new suppression to this file,
+# please create a JIRA for tracking purposes and include
+# the JIRA key in a comment.  This should be done
+# regardless of whether or not the error turns out to be
+# a false-positive: having a JIRA, even if closed/not-a-bug,
+# provides a record of the analysis of the error.
+#
+
+# DISPATCH-1956
+deadlock:push_event
 
+# DISPATCH-2070,
 race:qd_vlog_impl
-deadlock:qd_vlog_impl
-race:qd_log_entity
 
-race:qdr_core_free
+# DISPATCH-2122
+race:qd_alloc_init
 
-race:qd_alloc
+# DISPATCH-2123
 race:qd_entity_refresh_allocator
 
-mutex:qd_router_timer_handler
-race:qdr_process_tick_CT
-deadlock:qd_timer_schedule
-deadlock:qd_timer_visit
-
-race:qdr_connection_process
-
+# DISPATCH-2124
 race:qdr_link_flow
-race:qdr_link_flow_CT
-race:qdr_link_process_deliveries
+
+# DISPATCH-2125
 race:qdr_link_stalled_outbound
-race:qdr_link_first_attach
 
-race:qdr_delivery_link_peers_CT
-race:qdr_delivery_push_CT
-race:qdr_delivery_disposition
+# DISPATCH-2126
+race:qdr_delivery_mcast_inbound_update_CT
 race:qdr_delivery_anycast_update_CT
 
-race:qdr_connection_set_context
-race:qdr_connection_get_context
+# DISPATCH-2127
+race:qd_message_receive
+
+# DISPATCH-2128
+race:process_link_CT
+
+# DISPATCH-2129: shutdown race
+race:qdr_core_free
+
+# DISPATCH-2130
+deadlock:qd_policy_socket_close
+
+# DISPATCH-2131
+race:qdr_record_link_credit
 
+# DISPATCH-2132
+race:qdr_process_tick_CT
+
+# DISPATCH-2133 (harmless)
+race:qd_log_enabled
+
+# DISPATCH-2134
+race:qdr_link_process_initial_delivery_CT
+race:tsan_reset_delivery_ids
+
+# DISPATCH-2135
+race:qd_message_Q2_holdoff_disable
+
+# DISPATCH-2136
+race:qd_message_set_aborted
+
+# DISPATCH-2137
+race:remote_sasl_process_init
+race:remote_sasl_prepare
 race:notify_downstream
-race:notify_upstream
 
-race:qdr_delivery_mcast_inbound_update_CT
-race:qdr_delivery_mcast_outbound_update_CT
-race:qdr_delivery_mcast_outbound_settled_CT
+# DISPATCH-2138
+race:qdr_link_inbound_detach_CT
+
+# DISPATCH-2140
+race:qdr_connection_set_context
+
+# DISPATCH-2141
+race:qdr_delivery_move_delivery_state_CT
+
+# DISPATCH-2143
 race:qdr_delivery_mcast_outbound_disposition_CT
 
-race:qd_message_receive
-race:qd_message_receive_complete
+#
+# External libraries
+#
 
-mutex:qdr_forward_on_message
+# proton false positive?
+# TBD: discuss with proton devs, JIRA if necessary
+deadlock:pni_timer_set
 
-mutex:qd_policy_amqp_open
-mutex:qd_policy_amqp_open_connector
 

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@qpid.apache.org
For additional commands, e-mail: commits-h...@qpid.apache.org

Reply via email to