Skip to content
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

Pin to pypy-3.9-v7.3.13 in CI #3308

Merged
merged 1 commit into from
Jan 23, 2024
Merged

Conversation

ecerulm
Copy link
Contributor

@ecerulm ecerulm commented Jan 23, 2024

CI seems to be continuosly failing on the test-pypy under pypy3.9.

Currently pypy3.9 is mapped to pypy3.9-v7.3.15 and I believe this particular version of pypy is causing the "coverage" take way longer.

In this PR I'm pinning the version to pypy3.9-v7.3.13, this I think makes the test-pypy to complete in under 8 minutes instead of the current +30 minutes which causes the CI job to be cancelled.

Closes #3305

@ecerulm
Copy link
Contributor Author

ecerulm commented Jan 23, 2024

You can see that now the test-pypy for pypy3.9 finishes in 9 minutes,
image

You can see that in many of the other PR by other authors the test-pypy for pypy-3.9 takes more that 30 minutes:

@sethmlarson sethmlarson added the Skip Changelog Pull requests that don't require a changelog entry label Jan 23, 2024
@sethmlarson
Copy link
Member

@ecerulm Interesting, this makes me wonder what changed between 7.3.13 and 7.3.15. If we figure that out we should report it to PyPy in case its a regression.

@sethmlarson
Copy link
Member

@ecerulm Can you create an issue on the https://github.com/pypy/pypy repository pointing back to this finding? Maybe they'll have some ideas, but if we have time we should poke around ourselves too.

Going to merge this to help others' CI.

@sethmlarson sethmlarson merged commit fb6cf2d into urllib3:main Jan 23, 2024
32 of 34 checks passed
@ecerulm
Copy link
Contributor Author

ecerulm commented Jan 23, 2024

@ecerulm Interesting, this makes me wonder what changed between 7.3.13 and 7.3.15. If we figure that out we should report it to PyPy in case its a regression.

Sure, I was going to do that, but I suspect is more a "coverage" thing. pypy is different from cPython, there are thing that in cPython are implemented in C and therefore "coverage" does not look into them. But in pypy some of those things are implemented in pure python and therefore coverage can get "overwhelmed" by tracking those. I suspect that there is something between pypy-3.9-v7.3.13 and pypy-3.90-v7.3.15 that makes coverage==7.4.0 go nuts.

I'll try to verify this suspicion and report it back to coverage and/or pypy

@pquentin
Copy link
Member

Great find, thanks! It will be interesting to see what is culprit. The good news is that the PyPy maintainers and the coverage.py maintainer have some sort of superhuman abilities and always fix our bugs quickly.

@ecerulm
Copy link
Contributor Author

ecerulm commented Jan 23, 2024

I'll setup another PR with pypy-3.9-v7.3.15 and remove the -m coverage run --parallel-mode to see if that is the case.
Unfortunately, I can't really test with pypy-3.9-v7.3.15 in my laptop because pyenv does not support that version yet.

@ecerulm
Copy link
Contributor Author

ecerulm commented Jan 23, 2024

Great find, thanks! It will be interesting to see what is culprit. The good news is that the PyPy maintainers and the coverage.py maintainer have some sort of superhuman abilities and always fix our bugs quickly.

Then maybe I will report this straight away.

@pquentin
Copy link
Member

Well, it is still useful to report if coverage is needed, and what PyPy patch version causes the issue.

@pquentin
Copy link
Member

There's a coverage issue for PyPy 7.3.15, but only on Windows: nedbat/coveragepy#1737

@ecerulm
Copy link
Contributor Author

ecerulm commented Jan 23, 2024

nedbat/coveragepy#1738

@ecerulm
Copy link
Contributor Author

ecerulm commented Jan 23, 2024

I run a test with pypy3.9-7.3.15 without -m coverage run --parallel-mode and it progresses farther but still takes more that 30 minutes https://github.com/urllib3/urllib3/actions/runs/7628197451/job/20778656524?pr=3309

So I guess it's not really coverage fault. I'll write a ticket on pypy repo

@ecerulm
Copy link
Contributor Author

ecerulm commented Jan 23, 2024

pypy/pypy#4877

@ecerulm ecerulm deleted the fix_pypy39_version branch January 23, 2024 16:26
@mattip
Copy link

mattip commented Jan 24, 2024

Is there a single test or type of test that is slower, or is it an across-the-board slowdown?
Is there a way to run the test suite with pytest's --duration to see what is going on? I don't use nox, so I would need some help how to manipulate test running.

@ecerulm
Copy link
Contributor Author

ecerulm commented Jan 24, 2024

Is there a single test or type of test that is slower, or is it an across-the-board slowdown?
It's across-the-board slowdown,

Also it only happens in pypy3.9-7.3.15 on Ubuntu 22.03.4 LTS. I tied on pypy3.9-7.3.15 on macOS Sonoma 14.3 and there the test run quite fast.

@ecerulm
Copy link
Contributor Author

ecerulm commented Jan 26, 2024

I opened #3323 to keep track of the issue with pypy3.9-7.3.14 and pypy3.9-7.3.15.

Further discussion should happen there.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Skip Changelog Pull requests that don't require a changelog entry
Projects
None yet
Development

Successfully merging this pull request may close these issues.

pypy tests often fail in CI with reason "cancelled after 30 minutes"
4 participants