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
mysterious failures and IPv6 problems for macOS GitHub actions jobs #13284
Comments
image changes on 20240329: |
Possibly related: |
aaaaaah This explains a lot:
|
What puzzles me is how that was not always causing those tests to fail... |
Do green tests shipped on updated images? It takes some time to update all the agents in prod. So you should have seen something like an ever-increasing number of errors until all new jobs only hit the updated agent with the |
Yes, that's exactly it - or rather it still worked fine on the old images. I went back to check a few of the older PRs and you are right. The green builds are still |
To reduce the risk that the user running the tests has a .curlrc present that messes things up. Ref: #13284
I did this
Over the last several days, CI jobs running on GitHub actions have turned flaky. Sometimes one of the macOS jobs fails, sometimes 10 of them fail. Rerunning the same code again may result in a different outcome.
The failures seem IPv6 related somehow. example job, another example
The most obvious symptom seems to be that when it has problems, it can't "resolve"
::1
. It can be noted that for macOS we callgetaddrinfo
even on plain numerical IP addressesfailures
When this problem happens, usually the following test cases fail: 1085 1400 1401 1402 1403 1404 1405 1406 1407 1420 1465 1467 1468 2100
Looking at test logs in a failed run , we can see that all HTTP-IPv6 tests are skipped because curl cannot verify the IPv6 server:
test 1085
Tries to use an IPv6 address for
--interface
but the resolving of the host (::1
) fails, which makes the test return an unexpected return code.test 1400-1468
These tests verify
--libcurl
- outputting generated libcurl using source code for a curl command line.These tests mysteriously get an extra line of libcurl code added:
The only way
CURLOPT_IPRESOLVE
is set by the curl command line tool is when the-4/--ipv4
option is used. And it is not used in any of these tests.test 2100
Uses DoH. When failing, the request does not ask for an IPv6 address (only IPv4) which makes the protocol check fail. Because it deems IPv6 not working?
macOS runner image
I expected the following
The tests should just work.
curl/libcurl version
current git
operating system
macOS only
The text was updated successfully, but these errors were encountered: