-
-
Notifications
You must be signed in to change notification settings - Fork 32.1k
Intermittent "unrecognized configuration name" failure on iOS and Android #118201
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
Comments
Until we have time to work out why this is happening, should we skip this test? It's posting iOS buildbot failures on GitHub about once a day, and we don't want to train everyone to ignore them. |
I've pushed up #118452 to skip the test on iOS (for now, at least). |
test_posix.PosixTester.test_confstr
Doing a full audit of the failures the buildbot has seen, it appears there's another cluster of tests that fail intermittently for a reason that appears similar to the Out of 118 builds to date, we've seen:
The common thread here is the call in |
Triage: the linked PRs are merged, is this ready to be closed or is there more to do? |
Yes - this is fully resolved. |
I've now seen this happen a couple of times on Android:
But this isn't an unreliable system call: it's a lookup in a static string-to-integer table which is created at compile time: Line 13537 in fed501d
Lines 13572 to 13574 in fed501d
So this is probably a bug in Python, but I can't even begin to guess what it is, or why it would happen on both Android and iOS. I can't find any mention on GitHub of it happening on any other platform. |
It's happened twice more on Android in the last day, but:
Timeline:
There are a few things that set iOS and Android apart from most other platforms:
It's possible that this combination makes it more likely to hit some undefined behavior or compiler bug which affects I'll reopen this issue until we've had a change to investigate further. |
In all the failures so far, it's failed on the automatic rerun, so it's probably something to do with the way the module initializes itself in I reran the most recent failure on the same commit, and it passed. I also couldn't reproduce the failure locally, despite running the failing test repeatedly, in a new process each time. |
I looked at the relevant code for a bit and couldn't find anything obviously wrong either. One thing that seemed a little suspicious was the size of the array members, which are The two config names that have caused issues (PC_NAME_MAX and SC_OPEN_MAX) both are sort of in the middle of their tables, though I'm not sure how many of these configs are defined on Android and iOS. |
Thanks, it's plausible that this could be related to alignment, since it's only happened on ARM64, not x86_64. Though I don't understand why repeating the buildbot run on the same commit doesn't repeat the failure. There shouldn't be any non-determinism in the build, and non-determinism at runtime such as ASLR shouldn't change alignment on such a small scale. |
(cherry picked from commit c5c9286)
Uh oh!
There was an error while loading. Please reload this page.
Bug report
Bug description:
The iOS buildbot is seeing an intermittent testing failure in `test_posix.PosixTester.test_confstr:
See this PR for the buildbot report; this build is the resulting failure.
The failure appears to be completely transient, affecting ~1 in 10 builds; the next buildbot run almost always passes, with no changes addressing this issue.
I've been unsuccessful reproducing the test locally.
CPython versions tested on:
CPython main branch
Operating systems tested on:
Other
Linked PRs
os.sysconf
on iOS #118453The text was updated successfully, but these errors were encountered: