Skip to content

Commit e845583

Browse files
committed
test(integration): widen TSan shutdown windows for multi-gateway tests
The four multi-gateway aggregation tests bypassed create_gateway_node() to build their own launch_ros.actions.Node instances and inherited the launch default sigterm_timeout=5/sigkill_timeout=5. Under TSan the gateway teardown sequence (mdns stop, REST server stop, transport shutdown, plugin shutdown) routinely exceeds 5s, so launch escalates SIGINT to SIGTERM and then to SIGKILL, leaving the process with exit -9 which is not in ALLOWED_EXIT_CODES. test_leaf_collision_aggregation tripped on this today; the other three are latent. Apply the same 30s/15s windows as create_gateway_node() so all four test families survive sanitizer slowdowns.
1 parent 5adf37d commit e845583

4 files changed

Lines changed: 22 additions & 0 deletions

File tree

src/ros2_medkit_integration_tests/test/features/test_cross_ecu_fanout.test.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -198,6 +198,11 @@ def generate_test_description():
198198
'discovery.manifest_strict_validation': False,
199199
}],
200200
additional_env=peer_domain_env,
201+
# Match create_gateway_node()'s TSan/ASan-safe shutdown windows.
202+
# Default 5s SIGINT->SIGTERM escalation is insufficient under
203+
# sanitizers and causes SIGKILL with exit -9.
204+
sigterm_timeout='30',
205+
sigkill_timeout='15',
201206
)
202207

203208
primary_fault_mgr = launch_ros.actions.Node(

src/ros2_medkit_integration_tests/test/features/test_daisy_chain_aggregation.test.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,12 @@ def _gateway(port, name, manifest_path, domain, aggregation_peers=None):
148148
output='screen',
149149
parameters=[params],
150150
additional_env={'ROS_DOMAIN_ID': str(domain)},
151+
# Match create_gateway_node()'s TSan/ASan-safe shutdown windows.
152+
# Under sanitizers the gateway teardown sequence (mdns stop, REST
153+
# server stop, transport shutdown, plugin shutdown) routinely
154+
# exceeds launch's 5s default, causing SIGKILL with exit -9.
155+
sigterm_timeout='30',
156+
sigkill_timeout='15',
151157
)
152158

153159

src/ros2_medkit_integration_tests/test/features/test_leaf_collision_aggregation.test.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,12 @@ def _gateway(port, name, manifest_path, domain, aggregation_peers=None):
138138
output='screen',
139139
parameters=[params],
140140
additional_env={'ROS_DOMAIN_ID': str(domain)},
141+
# Match create_gateway_node()'s TSan/ASan-safe shutdown windows.
142+
# Under sanitizers the gateway teardown sequence (mdns stop, REST
143+
# server stop, transport shutdown, plugin shutdown) routinely
144+
# exceeds launch's 5s default, causing SIGKILL with exit -9.
145+
sigterm_timeout='30',
146+
sigkill_timeout='15',
141147
)
142148

143149

src/ros2_medkit_integration_tests/test/features/test_peer_aggregation.test.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,11 @@ def generate_test_description():
104104
'server.port': PEER_PORT,
105105
}],
106106
additional_env=peer_domain_env,
107+
# Match create_gateway_node()'s TSan/ASan-safe shutdown windows.
108+
# Default 5s SIGINT->SIGTERM escalation is insufficient under
109+
# sanitizers and causes SIGKILL with exit -9.
110+
sigterm_timeout='30',
111+
sigkill_timeout='15',
107112
)
108113

109114
# Demo nodes: each set runs in its gateway's DDS domain.

0 commit comments

Comments
 (0)