From: "gnufied (hemant kumar)" Date: 2013-11-18T11:04:19+09:00 Subject: [ruby-core:58398] [ruby-trunk - Bug #9122][Open] requiring readline in a spawned ruby process with new process group can hang it Issue #9122 has been reported by gnufied (hemant kumar). ---------------------------------------- Bug #9122: requiring readline in a spawned ruby process with new process group can hang it https://bugs.ruby-lang.org/issues/9122 Author: gnufied (hemant kumar) Status: Open Priority: Normal Assignee: Category: Target version: ruby -v: 2.0.0-p247 Backport: 1.9.3: UNKNOWN, 2.0.0: UNKNOWN Lets say I have a program: ~> cat a.rb require "pty" require "io/console" puts "Starting" m, s = PTY.open s.raw! # disable newline conversion. pid = spawn("ruby using_pry.rb", chdir: '.', pgroup: true, out: m, err: m) at_exit { Process.kill("TERM", pid)} Process.wait(pid) and ~> cat b.rb require "readline" loop do puts "Hello" sleep(5) end If I run a.rb, spawned process gets hung at requiring readline. However if I close the stdin in spawned process via in: :close this problem does not occur. It also does not happen if I am not reassinging STDOUT of spawned process as currently I do. -- http://bugs.ruby-lang.org/