Skip to content

curl.yml: skip curl test 1964 on the master leg - #11933

Merged
philljj merged 1 commit into
wolfSSL:masterfrom
yosuke-wolfssl:fix/curl-test
Oct 30, 2026
Merged

philljj merged 1 commit into
wolfSSL:masterfrom
yosuke-wolfssl:fix/curl-test

Conversation

@yosuke-wolfssl

Copy link
Copy Markdown
Contributor

Problem

The curl Test job fails on every PR since 2026-10-29 ~10:30 UTC. Only the master leg fails, on curl test 1964 (HTTP AWS_SIGV4 with X-Xxx-Date header set manually), which segfaults (exit 139) before sending a request.

The trigger is curl commit d2f86ea632 ("NTLM: drop support"). It changed how runtests.pl defines the crypto test feature from NTLM || Kerberos || SPNEGO to SSL || Kerberos || SPNEGO. Our build never had NTLM, so tests needing crypto were all skipped until now. 1964 now runs for the first time and hits a curl bug:

  • Curl_HMAC_init() places the two hash contexts right after the 24-byte struct HMAC_context, 8 bytes off 16-byte alignment.
  • struct wc_Sha256 has ALIGN16 members on 64-bit CPUs, so GCC initializes it with movaps, which faults on the misaligned address in wc_InitSha256_ex.

This is not a wolfSSL regression. The CRAM-MD5 tests go through the same curl HMAC code and pass, because wc_Md5 has no ALIGN16.

Fix (.github/workflows/curl.yml)

  • The master leg passes TFLAGS='!1964' to make test-nonflaky, which skips that one test. All other tests still run, including the 105 other newly enabled crypto tests.
  • The curl-8_4_0 leg is unchanged.

The skip should be removed once curl fixes the HMAC context alignment.

Verification

  • Reproduced in an x86_64 ubuntu:24.04 container under valgrind: General Protection Fault at movaps %xmm0,(%rdi) in wc_InitSha256_ex, called from Curl_HMAC_init / Curl_output_aws_sigv4.
  • Negative control: padding struct HMAC_context to 32 bytes makes the fault go away and test 1964 pass.
  • With the same wolfSSL, curl c7d6a625c2 skips 1964 ("curl lacks crypto support") and curl d2f86ea632 runs it.

- The master leg passes TFLAGS='!1964' to make test-nonflaky; the
  curl-8_4_0 leg passes an empty TFLAGS.
@yosuke-wolfssl yosuke-wolfssl self-assigned this Oct 30, 2026
Copilot AI balanced review requested due to automatic review settings October 30, 2026 02:22

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Copilot was unable to review this pull request because the user who requested the review has insufficient remaining quota.

@yosuke-wolfssl
yosuke-wolfssl marked this pull request as draft October 30, 2026 02:23
@github-actions

github-actions Bot commented Oct 30, 2026 •

Copy link
Copy Markdown

@yosuke-wolfssl
yosuke-wolfssl marked this pull request as ready for review October 30, 2026 02:27
@github-actions

Copy link
Copy Markdown

retest this please

@yosuke-wolfssl

Copy link
Copy Markdown
Contributor Author

@claude review

@wolfSSL-Fenrir-bot wolfSSL-Fenrir-bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Fenrir Automated Review — PR #11933

Scan targets checked: wolfssl-pr-general
Review type: general (no scan target covers the changed files)
Coverage: 1 of 1 in-scope changed file(s) opened by the reviewer

Fenrir result: Approved ✅

No new issues found in the changed files.

Advisory only — this automated result does not count as a GitHub approval.

Review tier: Lite

@claude claude Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

LGTM. This CI-only change skips curl test 1964 on the master leg and leaves everything else as it was.

What was reviewed:

  • The matrix expression: master gets !1964, and curl-8_4_0 gets an empty TFLAGS. That leg passes nothing extra to runtests, so it runs the same tests as before.
  • Passing TFLAGS on the make command line: curl's test-nonflaky target hands it to runtests along with the non-flaky flags. !N is runtests' syntax for excluding a test. History expansion is off in non-interactive bash, so ! inside the double quotes is safe.
Extended reasoning...

The change touches only .github/workflows/curl.yml. It adds a step-level env var and passes it as TFLAGS to curl's make test-nonflaky, which excludes test 1964 only on the curl master leg. No wolfSSL library, build or test code changes, and there is no security-sensitive surface beyond skipping one external test. The comment documents the root cause as a misaligned HMAC context in curl and says when to remove the skip. I approved because the change is small and self-contained, no CODEOWNERS file covers it, and the only earlier review was a non-blocking COMMENTED review.

@yosuke-wolfssl

Copy link
Copy Markdown
Contributor Author

Jenkins retest please

@philljj philljj self-assigned this Oct 30, 2026
@philljj

philljj commented Oct 30, 2026

Copy link
Copy Markdown
Contributor

Retest this please.

(PRB disrupted or something)

@philljj

philljj commented Oct 30, 2026

Copy link
Copy Markdown
Contributor

Thank you @yosuke-wolfssl

@philljj
philljj merged commit 816e922 into wolfSSL:master Oct 30, 2026
718 of 816 checks passed
@yosuke-wolfssl
yosuke-wolfssl deleted the fix/curl-test branch October 30, 2026 04:34
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.

4 participants