debug icon indicating copy to clipboard operation
debug copied to clipboard

Process waits for forked children when 'debug' is loaded

Open sudoremo opened this issue 1 year ago • 1 comments

Your environment

  • ruby -v: ruby 3.2.1 (2023-02-08 revision 31819e82c8) +YJIT [x86_64-darwin23]
  • rdbg -v: rdbg 1.9.2

Describe the bug

When forking a ruby process without detaching it, the parent process should not wait for the child process to exit. Requiring debug however makes the process wait until the child process quits.

To Reproduce

require 'debug'

fork { sleep 10 }

Expected behavior

The parent process should exit immediately after forking. Effective behaviour is that the parent process waits for the child process to exit, which takes roughly 10s in the example above. Without the Gem debug, it works as expected.

Additional context

May be related to #1099.

sudoremo avatar Aug 26 '24 09:08 sudoremo

May I bump this issue? This is quite a concern for us at the moment. We've tried looking into it ourselves, but so far I had no luck in identifying the problem. Many thanks for your help.

sudoremo avatar Oct 15 '24 09:10 sudoremo

Thank you for the report.

Current behavior is intended. Now debug.gem shares the terminal with the parent and child processes and I'm not sure we can exit the parent process. Please imagine what happens on child process enter the debug console and the parent process has been already exited. I have no good idea for that. For example, remote debugging doesn't have this issue (we don't need to care about TTY).

ko1 avatar Dec 17 '24 20:12 ko1

Thanks.

sudoremo avatar Jun 10 '25 12:06 sudoremo