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 <[email protected]>
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: [email protected]
For additional commands, e-mail: [email protected]