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
Better byebug integration #2440
Comments
Unfortunately, I imagine debuggers hold the GVL while they're open, so I'm not sure we can do much. Maybe we just need to open a PR to Rails to increase worker_timeout (or disable?) in dev. |
I wonder if we could detect whether or not a debugger session has begun. |
Other options here:
|
I'm not sure the linked SO post is related. I use That said, I think byebug is different in that it'll pause the execution of all Ruby threads of the process, so I think the title of the issue might still be correct. Have you seen reports of byebug specifically causing a problem for people? There might be a better issue to link instead. |
Just took another look here. I'm 95% sure this is because byebug is using a c-ext to do what it does, and that c-ext does not unlock the GVL. C-extensions hold the GVL unless explicitly unlocked, and other threads will not pre-empt a thread inside a C-extension, holding the GVL. This is why you can't repro the issue with I believe rails/rails#40503 is the best workaround for this issue. |
Cluster-mode Puma and byebug (default gem in Rails) play poorly together.
Not sure what a good course of action is here.
The text was updated successfully, but these errors were encountered: