C-extension locks the GVL, causing timeouts
nateberkopec opened this issue · 0 comments
nateberkopec commented
Puma users frequently experience problems with Byebug which are solved by increasing puma's worker timeout. The worker timeout is intended to kill Puma workers which do not periodically send the master process a heartbeat reply.
The problem is:
- The heartbeat is implemented in Ruby
- Byebug's c-extension is not GVL-aware
- The heartbeat never gets sent, so Puma kills the worker, thus killing the debug session.
Workaround is here: rails/rails#40503