-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
Tests failing on PyPy #4632
Comments
I also note that PyPy went from 7.3.16 to 7.3.17 between those builds. |
What's even more weird is that those tests are run with I'm attempting to replicate the issue using |
The first attempt to repro ran into an issue with some of the workers failing then it just hung:
Not idea what that's all about. Maybe my system went to sleep when I walked away. |
It hung again a second time, this time with only two but again, I walked away during the run. It takes a very long time. I'll try again. Ugh. Tried again and this time it failed early. I think it may be running low on resources, but I have no idea which. |
In https://github.com/pypa/setuptools/actions/runs/10710763767/job/29698171478, I've added some debugging and confirmed that |
When I run the test in isolation, the test is skipped as expected. So there is indeed some interference from other tests. |
In https://github.com/pypa/setuptools/actions/runs/10710992997/job/29698838140, I added a fixture to check that os.environ['SETUPTOOLS_USE_DISTUTILS'] doesn't change for any given test, and none of the tests failed that check, so how is that possible? |
The failure doesn't happen for me locally, even with the same PyPy version. |
In https://github.com/pypa/setuptools/actions/runs/10712709409/job/29703544680, I've had some success detecting when the env var changes. It looks like it's one of the tests in test_integration is altering it. That sort-of makes sense, as it's running code from outside the repo within the environment, so it can mutate the environment. But why PyPy only, and why CI only? |
In 84a0079, I ran the tests sequentially so that the offending test can be identified. The job output implicates test_novaclient (or maybe test_pbr):
|
Something else that's odd and interesting - that novaclient test is run twice. Why would it run twice? |
In https://github.com/pypa/setuptools/actions/runs/10713178150/job/29704803966, I've proven that it's the
|
Okay. That test is marked as xfail, and if that tests fails twice (normally, then an error in teardown), then it will be reported twice (as xfail). If I run with
That's why I didn't see the "changed from stdlib to local" sooner - the xfail marker was masking it. I scanned the novaclient code for the environment variable, but I see nothing referencing it, but I'm seeing now there are other packages involved (dependencies, presumably). |
In 99e58a8, I've confirmed that pyyaml is implicated, and indeed pyyaml sets the variable in its setup.py (ugh). But that still doesn't explain why the issue doesn't occur on other platforms. Maybe it has something to do with wheels and caching? In any case, I'm mostly uninterested in fixing this test. It's been marked as xfail for some time and is testing a deprecated code path (easy_install), so let's just get rid of it (and probably the other integration tests for easy_install). |
For posterity, I pushed the commits for this issue to |
These tests passed on pypy in #4630, but failed on the release job (https://github.com/pypa/setuptools/actions/runs/10692324985).
Originally posted by @jaraco in #4630 (comment)
The text was updated successfully, but these errors were encountered: