-
Notifications
You must be signed in to change notification settings - Fork 89
tsan integration test flakes #332
Copy link
Copy link
Closed
Labels
P0Highest priorityHighest priority
Description
Some of the end-to-end integration tests flake under ASAN/TSAN.
Pasting an example [1]:
It is hard to get the end-to-end tests stable when execution is slowed down to
an order of magnitude, as we cannot rely on simulated time like we do in the c++
tests.
Options that I can come up with to resolve:
- Loosen expectations for sanitizer-enabled runs of the integration tests. This would
allow the sanitizers to still catch issues for the code that these tests hit. - Allow tests to be retried a certain amount of time in santitizer-enabled runs
- Disable tests in sanitizer runs. This seems like a bad option: even though expectations
aren't met, there is still value in the sanitizers observation of the code that gets hit (and
any issues they observe).
[gw3] [ 41%] FAILED ../../../../../../../../../../../../../../../root/project/test/integration/test_integration_basics.py::test_https_h1_tls_context_configuration[IpVersion.IPV4]
=================================== FAILURES ===================================
___________ test_https_h1_tls_context_configuration[IpVersion.IPV4] ____________
[gw3] linux -- Python 3.5.2 /usr/bin/python3
https_test_server_fixture = <test.integration.integration_test_fixtures.HttpsIntegrationTestBase object at 0x7fe1ccca6908>
def test_https_h1_tls_context_configuration(https_test_server_fixture):
"""
Verifies specifying tls cipher suites works with the h1 pool
"""
> _do_tls_configuration_test(https_test_server_fixture, "--tls-context", use_h2=False)
https_test_server_fixture = <test.integration.integration_test_fixtures.HttpsIntegrationTestBase object at 0x7fe1ccca6908>
/root/project/test/integration/test_integration_basics.py:314:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/root/project/test/integration/test_integration_basics.py:307: in _do_tls_configuration_test
assertCounterEqual(counters, "ssl.ciphers.%s" % cipher, 1)
test/integration/utility.py:35: in assertCounterEqual
assertEqual(counters[name], value)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
a = 2, b = 1
def assertEqual(a, b):
> assert a == b
E AssertionError
a = 2
b = 1
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
P0Highest priorityHighest priority