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/