-
Notifications
You must be signed in to change notification settings - Fork 70
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
update conda info cache in the background #211
Conversation
This looks great. Thanks @rvalieris Small suggestion, it could be nice to request a |
yes thats a good point, so calling .join in |
That should do indeed. Pinging @mcg1969 for review |
I'm running CI now. Can I ask how this affects compatibility? Are we fine on Windows still, for instance? |
CI failed on this import:
I haven't tested on windows. however all this patch is doing is just wrapping the subprocess call on a thread (so that we can wait for the output without blocking), I don't think thats going to cause any problems, but if anybody can do the test that would be better. also, I just saw that jupyter_client 7.0 have a new kernel provisioner stuff, I have not been able to wrap my head around how all this works yet but I wonder if we can do this better using that. |
I agree that we can remove the import. I do feel like we need to verify this on windows before we can merge, though. Manual verification is fine. |
alright, I did a simple test, disclaimer tho: I never used conda on windows. heres what I did:
|
@mcg1969, could you take another look at this? Several team members have reported that |
We just ran into this again, and it took a while to dive in and figure out that this is where the problem was: 2i2c-org/infrastructure#2047. This blocks server startup long enough that server spawns fail... |
While I believe this is still necessary, it turns out this wasn't entirely what my problem was - 2i2c-org/infrastructure#2047 (comment) lists the other primary issue. Apologies for the wrong path taken earlier. |
@basnijholt now that we're unstuck we can reconsider this one we would need to resolve the merge conflicts first |
except Exception as err: | ||
return None, err | ||
finally: | ||
self.wait_for_child_processes_cleanup() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@rvalieris @fcollonval @yuvipanda @basnijholt could I perhaps get some eyes on this? I needed to carefully merge this with #233 / #231 and I would love a second pair of eyes to make sure I've done it correctly. |
Hello, its not clear to me how to trigger these zombie processes, but it seems ok to me to execute the waits inside the thread, I would only add a guard to make sure the child process is a zombie before waiting on it, to avoid getting stuck waiting indefinitely:
|
Uh, nevermind I misread the docs, timeout=0 will not block. I was worried in cases where there are other processes around, like spawned by jupyter-server-proxy, but I think its fine. |
Thank you for checking! We haven't tagged a release yet so even if we needed to fix something we could. |
this is my proposed fix for #210