Skip to content

Lower default SSL peek test rounds and remove CI workarounds#3155

Merged
justsmth merged 3 commits intoaws:mainfrom
justsmth:fix-peek-rounds
Apr 11, 2026
Merged

Lower default SSL peek test rounds and remove CI workarounds#3155
justsmth merged 3 commits intoaws:mainfrom
justsmth:fix-peek-rounds

Conversation

@justsmth
Copy link
Copy Markdown
Contributor

@justsmth justsmth commented Apr 9, 2026

Issues:

Resolves #3141

Description of changes:

The SSL runner's DEFAULT_PEEK_ROUNDS of 50 has been causing i/o timeouts on non-Linux platforms for a while now. We've been working around this by setting AWS_LC_SSL_TEST_RUNNER_PEEK_ROUNDS=5 in CI for Windows, OpenBSD, FreeBSD, and NetBSD — but that leaves anyone building locally on those platforms hitting the same failures (#3141).

This lowers the default from 50 to 5 and removes all the per-job CI overrides. The sanity-test-run job (Linux, ubuntu-latest) now runs with AWS_LC_SSL_TEST_RUNNER_PEEK_ROUNDS=100 to provide stress-test coverage of the peek buffer drain/refill cycle on a platform that can comfortably handle it.

Call-outs:

The peek test verifies the SSL_peek → SSL_peek → SSL_read state transition per TLS record. Each round exercises the same code path — the internal buffer fill/drain cycle through ssl->s3->pending_app_data. 5 rounds is sufficient for correctness; higher round counts only repeat the same transition and don't exercise additional code paths. The env var override remains available for targeted stress testing.

The AWS_LC_SSL_TEST_RUNNER_PEEK_ROUNDS env var support in runner.go and the AWS_LC_SSL_RUNNER_IDLE_TIMEOUT CMake plumbing are intentionally preserved as general-purpose knobs for slow environments or stress testing.

Testing:

CI should pass without the per-platform peek rounds overrides. The FreeBSD, OpenBSD, NetBSD, and Windows jobs are the ones to watch. The sanity-test-run job validates the stress-test configuration at 100 rounds on Linux.

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license and the ISC license.

@justsmth justsmth requested a review from a team as a code owner April 9, 2026 18:07
@justsmth justsmth requested a review from torben-hansen April 9, 2026 18:08
@justsmth justsmth requested a review from samuel40791765 April 9, 2026 18:08
@codecov-commenter
Copy link
Copy Markdown

codecov-commenter commented Apr 9, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 77.93%. Comparing base (401a31b) to head (2ea8a40).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #3155      +/-   ##
==========================================
- Coverage   77.95%   77.93%   -0.02%     
==========================================
  Files         689      689              
  Lines      122537   122537              
  Branches    17071    17070       -1     
==========================================
- Hits        95526    95503      -23     
- Misses      26112    26136      +24     
+ Partials      899      898       -1     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Copy link
Copy Markdown
Contributor

@dougch dougch left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

dougch
dougch previously approved these changes Apr 10, 2026
@justsmth justsmth merged commit 23b1382 into aws:main Apr 11, 2026
467 of 470 checks passed
@justsmth justsmth deleted the fix-peek-rounds branch April 11, 2026 20:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

AWS-LC peek-related self-test failures on FreeBSD 15.0-RELEASE-p7

4 participants