-
-
Notifications
You must be signed in to change notification settings - Fork 1.9k
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
RuntimeError: maximum recursion depth exceeded #673
Comments
hmm, i'm not sure why. You might want to convert the file by hand — it wouldn't take too long. or, break it into smaller chunks and use |
this may just be a limitation of the way our toml library is designed. |
I'd try the smaller chunk approach, break it into 4 files or so. |
thx, will try that. |
I split it up among 4 files. First 3 succeeded. 4th one failed with the same error. I tried splitting that into even smaller files but the same thing happened. Basically, after having installed a certain number of packages, installing even 1 more package fails with recursion error. Doesn't matter which package. After having installed a bunch of packages:
Then installing any one more package gives this:
|
just out of curiosity, what are you building there with 201 dependencies? (only seen such things in node.js till now ;)) |
It’s https://close.io. We don’t have 201 direct dependences, but we were using pip’s After porting to pipenv, I expect to be able to remove the subdependencies from Pipfile due to the safety provided by Pipfile.lock. However I want to do that as a subsequent step in order to avoid a bunch of subdependency version bumps that would be too large of a change all at once. And my assumption is the recursion error here is based on Pipfile.lock’s size which wouldn’t shrink anyway. |
I'll see about falling back to the second parser today. Having your pipfile handy would be great. |
okay v7.8.2 released, which falls back to another parser if this one fails. |
This should (hopefully) fix your issue |
to be clear, we're using contoml in attempt to preserve comments in the pipfile. |
it appears to choke on large files though, so i made the code fallback to 'toml' parser when that one fails. |
Closing, as i believe this is now fixed. |
Confirmed working with a 196 line toml file. that wasn't easy to make. |
FYI, pipenv automatically uses --no-deps, so you might be able to prune this file a bit. |
fyi I tried again on 7.8.3 and I get the same error when trying to install 1 more package.
I'm going to try to prune Pipfile of subdependencies. |
can you show the exception? |
that's an outrageously large Pipfile |
maybe our other parser can't handle it either |
Yeah, I'm going to work on making it smaller.
|
weird, it should be using the other parser. let me take a look. |
Signed-off-by: Kenneth Reitz <me@kennethreitz.org>
try v7.8.5 |
Trying. Sidenote: When I run |
it shouldn't be doing that unless -r isn't given.. |
fixed in v7.8.6! |
On 7.8.5:
I also tried it with (I'm still going to try pruning to a smaller file, haven't yet) |
that is... weird. |
can you please privately share your pipfile with me? |
this is a goldmine of edgecases |
we confirmed we fixed the toml bug though, yay! |
looks like you guys having fun :) |
|
I'm running MacOS. What OS are you on? |
Same |
it might be related to git... i'm surprised --sequential didn't fix your problem. |
Yeah, succeeded over here (aside from lxml failing to build) |
At this point I'm more excited to prune the file first anyway. Of course there's bugs with that too :) So I'm working through reviewing it manually. |
Did you try |
Not yet. It's just a wrapper around pipreqs, right? (And would have the same bug). I figured I'd start there with just my requirements file, for simpler changes first. |
yeah it's a wrapper around pip reqs. will probably give you a lot of false positives, but it'd be a place to start. |
Cannot reproduce, even with 4+ git deps. |
I ran However I then ran |
FYI if you run into this error again you can check the per-process file handle limit with for pid in ( ps aux | grep -i pipenv | awk '{ print $2 }')
lsof -p $pid
end | wc -l You can run without It would be hard to troubleshoot something like this, but I'd be curious to see the output of that if it happens again or if you can reproduce. |
I run into this problem on one of my Windows machine. It works on Ubuntu and another Windows. On the windows has the problem I run pipenv with |
I tried pasting the Airflow build at https://raw.githubusercontent.com/apache/airflow/constraints-2.7.1/constraints-3.8.txt (~650 lines) as a mitigation for the unsupported
|
Trying to convert my production app, I get a recursion error:
It makes some good progress before crashing:
The text was updated successfully, but these errors were encountered: