Bug #9122

requiring readline in a spawned ruby process with new process group can hang it

Added by hemant kumar almost 2 years ago. Updated almost 2 years ago.

[ruby-core:58398]
Status:Feedback
Priority:Normal
Assignee:-
ruby -v:2.0.0-p247 Backport:1.9.3: UNKNOWN, 2.0.0: UNKNOWN

Description

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.

History

#1 Updated by Tomoyuki Chikanaga almost 2 years ago

  • Status changed from Open to Feedback

I cannot reproduce on Mac OS X 10.9 (Mavericks).
What's your environment. Please check if it is reproducible with 2.0.0-p353 and trunk?

Also available in: Atom PDF