bug-readline
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Bug-readline] terminal corruption with spawned ruby processes


From: Chet Ramey
Subject: Re: [Bug-readline] terminal corruption with spawned ruby processes
Date: Wed, 12 Apr 2017 14:38:29 -0400
User-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:45.0) Gecko/20100101 Thunderbird/45.8.0

On 4/11/17 5:22 PM, Eric Thompson wrote:
> |Process.spawn('ruby -e "puts :first; require \'pry\'; binding.pry; puts
> :second"')|

Here's what I get:

caleb.ins.cwru.edu(1)$ ruby --version
ruby 2.0.0p648 (2015-12-16 revision 53162) [universal.x86_64-darwin16]
caleb.ins.cwru.edu(1)$ irb --version
irb 0.9.6(09/06/30)
caleb.ins.cwru.edu(1)$ uname -a
Darwin caleb.ins.cwru.edu 16.4.0 Darwin Kernel Version 16.4.0: Thu Dec 22
22:53:21 PST 2016; root:xnu-3789.41.3~3/RELEASE_X86_64 x86_64
caleb.ins.cwru.edu(1)$ irb
irb(main):001:0> Process.spawn('ruby -e "puts :first; require \'pry\';
binding.pry; puts :second"')
=> 78063
irb(main):002:0> first
[1] pry(main)> quit
quit
caleb.ins.cwru.edu(1)$ Error: Input/output error - <STDIN>
/Library/Ruby/Gems/2.0.0/gems/pry-0.10.4/lib/pry/repl.rb:198:in `readline'
/Library/Ruby/Gems/2.0.0/gems/pry-0.10.4/lib/pry/repl.rb:198:in `block in
input_readline'
/Library/Ruby/Gems/2.0.0/gems/pry-0.10.4/lib/pry/input_lock.rb:115:in `call'
/Library/Ruby/Gems/2.0.0/gems/pry-0.10.4/lib/pry/input_lock.rb:115:in
`interruptible_region'
/Library/Ruby/Gems/2.0.0/gems/pry-0.10.4/lib/pry/repl.rb:197:in
`input_readline'
/Library/Ruby/Gems/2.0.0/gems/pry-0.10.4/lib/pry/repl.rb:183:in `block in
read_line'
/Library/Ruby/Gems/2.0.0/gems/pry-0.10.4/lib/pry/repl.rb:129:in
`handle_read_errors'
/Library/Ruby/Gems/2.0.0/gems/pry-0.10.4/lib/pry/repl.rb:170:in `read_line'
/Library/Ruby/Gems/2.0.0/gems/pry-0.10.4/lib/pry/repl.rb:98:in `read'
/Library/Ruby/Gems/2.0.0/gems/pry-0.10.4/lib/pry/repl.rb:68:in `block in repl'
/Library/Ruby/Gems/2.0.0/gems/pry-0.10.4/lib/pry/repl.rb:67:in `loop'
/Library/Ruby/Gems/2.0.0/gems/pry-0.10.4/lib/pry/repl.rb:67:in `repl'
/Library/Ruby/Gems/2.0.0/gems/pry-0.10.4/lib/pry/repl.rb:38:in `block in start'
/Library/Ruby/Gems/2.0.0/gems/pry-0.10.4/lib/pry/input_lock.rb:61:in `call'
/Library/Ruby/Gems/2.0.0/gems/pry-0.10.4/lib/pry/input_lock.rb:61:in
`__with_ownership'
/Library/Ruby/Gems/2.0.0/gems/pry-0.10.4/lib/pry/input_lock.rb:79:in
`with_ownership'
/Library/Ruby/Gems/2.0.0/gems/pry-0.10.4/lib/pry/repl.rb:38:in `start'
/Library/Ruby/Gems/2.0.0/gems/pry-0.10.4/lib/pry/repl.rb:15:in `start'
/Library/Ruby/Gems/2.0.0/gems/pry-0.10.4/lib/pry/pry_class.rb:169:in `start'
/Library/Ruby/Gems/2.0.0/gems/pry-0.10.4/lib/pry/core_extensions.rb:43:in `pry'
-e:1:in `<main>'
[1] pry(main)> Error: Input/output error - <STDIN>
/Library/Ruby/Gems/2.0.0/gems/pry-0.10.4/lib/pry/repl.rb:198:in `readline'
/Library/Ruby/Gems/2.0.0/gems/pry-0.10.4/lib/pry/repl.rb:198:in `block in
input_readline'
/Library/Ruby/Gems/2.0.0/gems/pry-0.10.4/lib/pry/input_lock.rb:115:in `call'
/Library/Ruby/Gems/2.0.0/gems/pry-0.10.4/lib/pry/input_lock.rb:115:in
`interruptible_region'
/Library/Ruby/Gems/2.0.0/gems/pry-0.10.4/lib/pry/repl.rb:197:in
`input_readline'
/Library/Ruby/Gems/2.0.0/gems/pry-0.10.4/lib/pry/repl.rb:183:in `block in
read_line'
/Library/Ruby/Gems/2.0.0/gems/pry-0.10.4/lib/pry/repl.rb:129:in
`handle_read_errors'
/Library/Ruby/Gems/2.0.0/gems/pry-0.10.4/lib/pry/repl.rb:170:in `read_line'
/Library/Ruby/Gems/2.0.0/gems/pry-0.10.4/lib/pry/repl.rb:98:in `read'
/Library/Ruby/Gems/2.0.0/gems/pry-0.10.4/lib/pry/repl.rb:68:in `block in repl'
/Library/Ruby/Gems/2.0.0/gems/pry-0.10.4/lib/pry/repl.rb:67:in `loop'
/Library/Ruby/Gems/2.0.0/gems/pry-0.10.4/lib/pry/repl.rb:67:in `repl'
/Library/Ruby/Gems/2.0.0/gems/pry-0.10.4/lib/pry/repl.rb:38:in `block in start'
/Library/Ruby/Gems/2.0.0/gems/pry-0.10.4/lib/pry/input_lock.rb:61:in `call'
/Library/Ruby/Gems/2.0.0/gems/pry-0.10.4/lib/pry/input_lock.rb:61:in
`__with_ownership'
/Library/Ruby/Gems/2.0.0/gems/pry-0.10.4/lib/pry/input_lock.rb:79:in
`with_ownership'
/Library/Ruby/Gems/2.0.0/gems/pry-0.10.4/lib/pry/repl.rb:38:in `start'
/Library/Ruby/Gems/2.0.0/gems/pry-0.10.4/lib/pry/repl.rb:15:in `start'
/Library/Ruby/Gems/2.0.0/gems/pry-0.10.4/lib/pry/pry_class.rb:169:in `start'
/Library/Ruby/Gems/2.0.0/gems/pry-0.10.4/lib/pry/core_extensions.rb:43:in `pry'
-e:1:in `<main>'
[1] pry(main)> Error: Input/output error - <STDIN>
/Library/Ruby/Gems/2.0.0/gems/pry-0.10.4/lib/pry/repl.rb:198:in `readline'
/Library/Ruby/Gems/2.0.0/gems/pry-0.10.4/lib/pry/repl.rb:198:in `block in
input_readline'
/Library/Ruby/Gems/2.0.0/gems/pry-0.10.4/lib/pry/input_lock.rb:115:in `call'
/Library/Ruby/Gems/2.0.0/gems/pry-0.10.4/lib/pry/input_lock.rb:115:in
`interruptible_region'
/Library/Ruby/Gems/2.0.0/gems/pry-0.10.4/lib/pry/repl.rb:197:in
`input_readline'
/Library/Ruby/Gems/2.0.0/gems/pry-0.10.4/lib/pry/repl.rb:183:in `block in
read_line'
/Library/Ruby/Gems/2.0.0/gems/pry-0.10.4/lib/pry/repl.rb:129:in
`handle_read_errors'
/Library/Ruby/Gems/2.0.0/gems/pry-0.10.4/lib/pry/repl.rb:170:in `read_line'
/Library/Ruby/Gems/2.0.0/gems/pry-0.10.4/lib/pry/repl.rb:98:in `read'
/Library/Ruby/Gems/2.0.0/gems/pry-0.10.4/lib/pry/repl.rb:68:in `block in repl'
/Library/Ruby/Gems/2.0.0/gems/pry-0.10.4/lib/pry/repl.rb:67:in `loop'
/Library/Ruby/Gems/2.0.0/gems/pry-0.10.4/lib/pry/repl.rb:67:in `repl'
/Library/Ruby/Gems/2.0.0/gems/pry-0.10.4/lib/pry/repl.rb:38:in `block in start'
/Library/Ruby/Gems/2.0.0/gems/pry-0.10.4/lib/pry/input_lock.rb:61:in `call'
/Library/Ruby/Gems/2.0.0/gems/pry-0.10.4/lib/pry/input_lock.rb:61:in
`__with_ownership'
/Library/Ruby/Gems/2.0.0/gems/pry-0.10.4/lib/pry/input_lock.rb:79:in
`with_ownership'
/Library/Ruby/Gems/2.0.0/gems/pry-0.10.4/lib/pry/repl.rb:38:in `start'
/Library/Ruby/Gems/2.0.0/gems/pry-0.10.4/lib/pry/repl.rb:15:in `start'
/Library/Ruby/Gems/2.0.0/gems/pry-0.10.4/lib/pry/pry_class.rb:169:in `start'
/Library/Ruby/Gems/2.0.0/gems/pry-0.10.4/lib/pry/core_extensions.rb:43:in `pry'
-e:1:in `<main>'
[1] pry(main)> Error: Input/output error - <STDIN>
/Library/Ruby/Gems/2.0.0/gems/pry-0.10.4/lib/pry/repl.rb:198:in `readline'
/Library/Ruby/Gems/2.0.0/gems/pry-0.10.4/lib/pry/repl.rb:198:in `block in
input_readline'
/Library/Ruby/Gems/2.0.0/gems/pry-0.10.4/lib/pry/input_lock.rb:115:in `call'
/Library/Ruby/Gems/2.0.0/gems/pry-0.10.4/lib/pry/input_lock.rb:115:in
`interruptible_region'
/Library/Ruby/Gems/2.0.0/gems/pry-0.10.4/lib/pry/repl.rb:197:in
`input_readline'
/Library/Ruby/Gems/2.0.0/gems/pry-0.10.4/lib/pry/repl.rb:183:in `block in
read_line'
/Library/Ruby/Gems/2.0.0/gems/pry-0.10.4/lib/pry/repl.rb:129:in
`handle_read_errors'
/Library/Ruby/Gems/2.0.0/gems/pry-0.10.4/lib/pry/repl.rb:170:in `read_line'
/Library/Ruby/Gems/2.0.0/gems/pry-0.10.4/lib/pry/repl.rb:98:in `read'
/Library/Ruby/Gems/2.0.0/gems/pry-0.10.4/lib/pry/repl.rb:68:in `block in repl'
/Library/Ruby/Gems/2.0.0/gems/pry-0.10.4/lib/pry/repl.rb:67:in `loop'
/Library/Ruby/Gems/2.0.0/gems/pry-0.10.4/lib/pry/repl.rb:67:in `repl'
/Library/Ruby/Gems/2.0.0/gems/pry-0.10.4/lib/pry/repl.rb:38:in `block in start'
/Library/Ruby/Gems/2.0.0/gems/pry-0.10.4/lib/pry/input_lock.rb:61:in `call'
/Library/Ruby/Gems/2.0.0/gems/pry-0.10.4/lib/pry/input_lock.rb:61:in
`__with_ownership'
/Library/Ruby/Gems/2.0.0/gems/pry-0.10.4/lib/pry/input_lock.rb:79:in
`with_ownership'
/Library/Ruby/Gems/2.0.0/gems/pry-0.10.4/lib/pry/repl.rb:38:in `start'
/Library/Ruby/Gems/2.0.0/gems/pry-0.10.4/lib/pry/repl.rb:15:in `start'
/Library/Ruby/Gems/2.0.0/gems/pry-0.10.4/lib/pry/pry_class.rb:169:in `start'
/Library/Ruby/Gems/2.0.0/gems/pry-0.10.4/lib/pry/core_extensions.rb:43:in `pry'
-e:1:in `<main>'
[1] pry(main)> Error: Input/output error - <STDIN>
/Library/Ruby/Gems/2.0.0/gems/pry-0.10.4/lib/pry/repl.rb:198:in `readline'
/Library/Ruby/Gems/2.0.0/gems/pry-0.10.4/lib/pry/repl.rb:198:in `block in
input_readline'
/Library/Ruby/Gems/2.0.0/gems/pry-0.10.4/lib/pry/input_lock.rb:115:in `call'
/Library/Ruby/Gems/2.0.0/gems/pry-0.10.4/lib/pry/input_lock.rb:115:in
`interruptible_region'
/Library/Ruby/Gems/2.0.0/gems/pry-0.10.4/lib/pry/repl.rb:197:in
`input_readline'
/Library/Ruby/Gems/2.0.0/gems/pry-0.10.4/lib/pry/repl.rb:183:in `block in
read_line'
/Library/Ruby/Gems/2.0.0/gems/pry-0.10.4/lib/pry/repl.rb:129:in
`handle_read_errors'
/Library/Ruby/Gems/2.0.0/gems/pry-0.10.4/lib/pry/repl.rb:170:in `read_line'
/Library/Ruby/Gems/2.0.0/gems/pry-0.10.4/lib/pry/repl.rb:98:in `read'
/Library/Ruby/Gems/2.0.0/gems/pry-0.10.4/lib/pry/repl.rb:68:in `block in repl'
/Library/Ruby/Gems/2.0.0/gems/pry-0.10.4/lib/pry/repl.rb:67:in `loop'
/Library/Ruby/Gems/2.0.0/gems/pry-0.10.4/lib/pry/repl.rb:67:in `repl'
/Library/Ruby/Gems/2.0.0/gems/pry-0.10.4/lib/pry/repl.rb:38:in `block in start'
/Library/Ruby/Gems/2.0.0/gems/pry-0.10.4/lib/pry/input_lock.rb:61:in `call'
/Library/Ruby/Gems/2.0.0/gems/pry-0.10.4/lib/pry/input_lock.rb:61:in
`__with_ownership'
/Library/Ruby/Gems/2.0.0/gems/pry-0.10.4/lib/pry/input_lock.rb:79:in
`with_ownership'
/Library/Ruby/Gems/2.0.0/gems/pry-0.10.4/lib/pry/repl.rb:38:in `start'
/Library/Ruby/Gems/2.0.0/gems/pry-0.10.4/lib/pry/repl.rb:15:in `start'
/Library/Ruby/Gems/2.0.0/gems/pry-0.10.4/lib/pry/pry_class.rb:169:in `start'
/Library/Ruby/Gems/2.0.0/gems/pry-0.10.4/lib/pry/core_extensions.rb:43:in `pry'
-e:1:in `<main>'
FATAL: Pry failed to get user input using `Readline`.
To fix this you may be able to pass input and output file descriptors to
pry directly. e.g.
  Pry.config.input = STDIN
  Pry.config.output = STDOUT
  binding.pry

second

caleb.ins.cwru.edu(1)$

Which looks a lot like a process group issue, or a process still running
in the background attempting to read from the terminal.  The background
messages after I type `quit' to the `pry' prompt are suspicious.

-- 
``The lyf so short, the craft so long to lerne.'' - Chaucer
                 ``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, UTech, CWRU    address@hidden    http://cnswww.cns.cwru.edu/~chet/



reply via email to

[Prev in Thread] Current Thread [Next in Thread]