-
Notifications
You must be signed in to change notification settings - Fork 3k
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
wheels larger than 4G fail to download/install #9549
Comments
Can you run a memory profiler, to see what's using this memory, or causing this bytes too large error? |
What tool would you prefer I do this in? I am certainly willing to, but I haven't done any profiling in python before. If you have something to point me at I can take a look at the docs and post a memory profile with that tool. A little more digging we did this evening: turns out this has been a problem since pip 10.x, 9.x and before works fine. As far as I can tell so far, this is failing due to msgpack under the hood, as msgpack appears to only support packing of 4GiB objects max. I think something under pip is buffering the downloaded wheel as a msgpack object and failing as a result. |
Judging from the traceback, this looks like a restriction in cachecontrol (which pip uses to cache network requests). One simple workaround would be to simply skip caching instead of failing. |
We re-ran tests with --no-cache-dir enabled, and it appears to succeed when we do, so it does seem to be a problem with the caching layer. |
More specifically: this appears to be a limitation of the msgpack format rather than a limitation of a specific implementation. https://github.com/msgpack/msgpack/blob/master/spec.md#bin-format-family
|
I've seen this before and I'd consider it a bug in pip. If you It seems that pip's handling of a large download does not allow for a slight connection drop, it just errors out where |
It's a bug in cache controll that triggers the issue for pip |
What makes you think this has anything to do with connection drop? |
Perhaps not a connection drop as such, but a slight interruption to the download. wget seems to be able to continue, pip errors out. |
Please read the issue, its relatively clearly stated that the cache layer fails after download on storage of a blob that's larger than what msgpack can store |
This should be fixed by fix to #2984. |
Environment
Description
Older versions of pip could handle wheels larger than 4GiB. After a pip3 --upgrade pip, downloading such a package causes a msgpack exception when trying to store the wheel to disk.
Output
The text was updated successfully, but these errors were encountered: