Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

V2 Integration isssue on Arm/nix #4568

Open
dougch opened this issue May 24, 2024 · 1 comment
Open

V2 Integration isssue on Arm/nix #4568

dougch opened this issue May 24, 2024 · 1 comment

Comments

@dougch
Copy link
Contributor

dougch commented May 24, 2024

Security issue notifications

If you discover a potential security issue in s2n we ask that you notify
AWS Security via our vulnerability reporting page. Please do not create a public github issue.

Problem:

As part of #3841, we're chasing down tests that fail under Nix on only Arm instances, needing extra retries. Specifically:

These flaky marks only apply to Arm, so no changes to the flaky settings should affect tests running on x86.
These values were arrived at by trial and error, running on CodeBuild (graviton2, 8 cores).

Steps taken to rule these out as an s2n issue

  • Repro locally, with no retries (main)
  • Add in the top 10 slowest pytest argument --durations=10
============================= slowest 10 durations =============================
5.01s call     test_renegotiate.py::test_s2n_client_renegotiate_with_client_auth_with_openssl[OpenSSL-TLS1.2-RSA_2048_SHA512-P-256-ECDHE-RSA-CHACHA20-POLY1305]
0.97s call     test_renegotiate.py::test_s2n_client_renegotiate_with_openssl[OpenSSL-TLS1.0-RSA_4096_SHA256-P-384-DHE-RSA-AES256-SHA]
...
=========================== short test summary info ============================
FAILED test_renegotiate.py::test_s2n_client_renegotiate_with_client_auth_with_openssl[OpenSSL-TLS1.2-RSA_2048_SHA512-P-256-ECDHE-RSA-CHACHA20-POLY1305]
  • Notice that the failure was at the timeout value of 5 seconds
  • Bump the timeout to 60 seconds, to rule out "this is just slow on arm"
============================= slowest 10 durations =============================
60.07s call     test_renegotiate.py::test_s2n_client_renegotiate_with_client_auth_with_openssl[OpenSSL-TLS1.2-RSA_2048_SHA512-P-384-ECDHE-RSA-AES128-SHA]
0.97s call     test_renegotiate.py::test_s2n_client_renegotiate_with_openssl[OpenSSL-TLS1.0-RSA_4096_SHA256-P-384-DHE-RSA-AES128-SHA]
...
FAILED test_renegotiate.py::test_s2n_client_renegotiate_with_client_auth_with_openssl[OpenSSL-TLS1.2-RSA_2048_SHA512-P-384-ECDHE-RSA-AES128-SHA]

Same result. Slowest test was the failed test, at the timeout value of 60 seconds.

  • Move the test_s2n_client_renegotiate_with_client_auth_with_openssl test to a new test file, all by itself, still timing out on the same parameters.
  • Reduce the fixtures into the test: only use TLS1.2, only use RSA_2048_SHA512 Cert, Only use P384 as the Curve, now the timeout has moved to a different set of parameters test_renegotiate_client.py::test_s2n_client_renegotiate_with_client_auth_with_openssl[OpenSSL-TLS1.2-RSA_2048_SHA512-P-384-ECDHE-RSA-AES128-GCM-SHA256]
  • further reduce the fixtures, only use the cipher ECDHE_RSA_AES128_SHA,, test passes.
280: PASSED test_renegotiate_client.py::test_s2n_client_renegotiate_with_client_auth_with_openssl[OpenSSL-TLS1.2-RSA_2048_SHA512-P-384-ECDHE-RSA-AES128-SHA]

While this process wasn't done for all of the flaky tests above, I did observe the same timeouts == reruns across all of them.

Solution:

?

@maddeleine
Copy link
Contributor

Can we get the actual errors that occurred when these tests failed?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants