Repository navigation
Bug when ctrl-c in pager #847
Copy link
Copy link
Closed
Labels
bugSomething isn't workingSomething isn't working
Description
Description
I was paging through a large array and hit ctrl-c.
I was expecting to go back to the irb session.
I got an error
Users/dorianmariefr/.asdf/installs/ruby/3.3.0/lib/ruby/gems/3.3.0/gems/irb-1.11.1/lib/irb/pager.rb:36:in `kill': No such process (Errno::ESRCH)
from /Users/dorianmariefr/.asdf/installs/ruby/3.3.0/lib/ruby/gems/3.3.0/gems/irb-1.11.1/lib/irb/pager.rb:36:in `rescue in page'
from /Users/dorianmariefr/.asdf/installs/ruby/3.3.0/lib/ruby/gems/3.3.0/gems/irb-1.11.1/lib/irb/pager.rb:20:in `page'
from /Users/dorianmariefr/.asdf/installs/ruby/3.3.0/lib/ruby/gems/3.3.0/gems/irb-1.11.1/lib/irb/pager.rb:12:in `page_content'
from /Users/dorianmariefr/.asdf/installs/ruby/3.3.0/lib/ruby/gems/3.3.0/gems/irb-1.11.1/lib/irb.rb:1357:in `output_value'
from /Users/dorianmariefr/.asdf/installs/ruby/3.3.0/lib/ruby/gems/3.3.0/gems/irb-1.11.1/lib/irb.rb:1013:in `block (2 levels) in eval_input'
from /Users/dorianmariefr/.asdf/installs/ruby/3.3.0/lib/ruby/gems/3.3.0/gems/irb-1.11.1/lib/irb.rb:1317:in `signal_status'
from /Users/dorianmariefr/.asdf/installs/ruby/3.3.0/lib/ruby/gems/3.3.0/gems/irb-1.11.1/lib/irb.rb:998:in `block in eval_input'
from /Users/dorianmariefr/.asdf/installs/ruby/3.3.0/lib/ruby/gems/3.3.0/gems/irb-1.11.1/lib/irb.rb:1080:in `block in each_top_level_statement'
from <internal:kernel>:187:in `loop'
from /Users/dorianmariefr/.asdf/installs/ruby/3.3.0/lib/ruby/gems/3.3.0/gems/irb-1.11.1/lib/irb.rb:1075:in `each_top_level_statement'
from /Users/dorianmariefr/.asdf/installs/ruby/3.3.0/lib/ruby/gems/3.3.0/gems/irb-1.11.1/lib/irb.rb:997:in `eval_input'
from /Users/dorianmariefr/.asdf/installs/ruby/3.3.0/lib/ruby/gems/3.3.0/gems/irb-1.11.1/lib/irb.rb:984:in `block in run'
from /Users/dorianmariefr/.asdf/installs/ruby/3.3.0/lib/ruby/gems/3.3.0/gems/irb-1.11.1/lib/irb.rb:983:in `catch'
from /Users/dorianmariefr/.asdf/installs/ruby/3.3.0/lib/ruby/gems/3.3.0/gems/irb-1.11.1/lib/irb.rb:983:in `run'
from /Users/dorianmariefr/.asdf/installs/ruby/3.3.0/lib/ruby/gems/3.3.0/gems/irb-1.11.1/lib/irb.rb:1541:in `irb'
from <internal:prelude>:5:in `irb'
from /Users/dorianmariefr/.asdf/installs/ruby/3.3.0/lib/ruby/gems/3.3.0/gems/dorian-pretty-0.1.0/bin/pretty:81:in `rescue in block in <top (required)>'
from /Users/dorianmariefr/.asdf/installs/ruby/3.3.0/lib/ruby/gems/3.3.0/gems/dorian-pretty-0.1.0/bin/pretty:75:in `block in <top (required)>'
from /Users/dorianmariefr/.asdf/installs/ruby/3.3.0/lib/ruby/gems/3.3.0/gems/dorian-pretty-0.1.0/bin/pretty:74:in `select'
from /Users/dorianmariefr/.asdf/installs/ruby/3.3.0/lib/ruby/gems/3.3.0/gems/dorian-pretty-0.1.0/bin/pretty:74:in `<top (required)>'
from /Users/dorianmariefr/.asdf/installs/ruby/3.3.0/bin/pretty:25:in `load'
from /Users/dorianmariefr/.asdf/installs/ruby/3.3.0/bin/pretty:25:in `<main>'
/Users/dorianmariefr/.asdf/installs/ruby/3.3.0/lib/ruby/gems/3.3.0/gems/irb-1.11.1/lib/irb.rb:897:in `raise': abort then interrupt! (IRB::Abort)
from /Users/dorianmariefr/.asdf/installs/ruby/3.3.0/lib/ruby/gems/3.3.0/gems/irb-1.11.1/lib/irb.rb:897:in `irb_abort'
from /Users/dorianmariefr/.asdf/installs/ruby/3.3.0/lib/ruby/gems/3.3.0/gems/irb-1.11.1/lib/irb.rb:1300:in `signal_handle'
from /Users/dorianmariefr/.asdf/installs/ruby/3.3.0/lib/ruby/gems/3.3.0/gems/irb-1.11.1/lib/irb.rb:979:in `block in run'
from /Users/dorianmariefr/.asdf/installs/ruby/3.3.0/lib/ruby/gems/3.3.0/gems/irb-1.11.1/lib/irb/pager.rb:13:in `write'
from /Users/dorianmariefr/.asdf/installs/ruby/3.3.0/lib/ruby/gems/3.3.0/gems/irb-1.11.1/lib/irb/pager.rb:13:in `puts'
from /Users/dorianmariefr/.asdf/installs/ruby/3.3.0/lib/ruby/gems/3.3.0/gems/irb-1.11.1/lib/irb/pager.rb:13:in `block in page_content'
from /Users/dorianmariefr/.asdf/installs/ruby/3.3.0/lib/ruby/gems/3.3.0/gems/irb-1.11.1/lib/irb/pager.rb:24:in `page'
from /Users/dorianmariefr/.asdf/installs/ruby/3.3.0/lib/ruby/gems/3.3.0/gems/irb-1.11.1/lib/irb/pager.rb:12:in `page_content'
from /Users/dorianmariefr/.asdf/installs/ruby/3.3.0/lib/ruby/gems/3.3.0/gems/irb-1.11.1/lib/irb.rb:1357:in `output_value'
from /Users/dorianmariefr/.asdf/installs/ruby/3.3.0/lib/ruby/gems/3.3.0/gems/irb-1.11.1/lib/irb.rb:1013:in `block (2 levels) in eval_input'
from /Users/dorianmariefr/.asdf/installs/ruby/3.3.0/lib/ruby/gems/3.3.0/gems/irb-1.11.1/lib/irb.rb:1317:in `signal_status'
from /Users/dorianmariefr/.asdf/installs/ruby/3.3.0/lib/ruby/gems/3.3.0/gems/irb-1.11.1/lib/irb.rb:998:in `block in eval_input'
from /Users/dorianmariefr/.asdf/installs/ruby/3.3.0/lib/ruby/gems/3.3.0/gems/irb-1.11.1/lib/irb.rb:1080:in `block in each_top_level_statement'
from <internal:kernel>:187:in `loop'
from /Users/dorianmariefr/.asdf/installs/ruby/3.3.0/lib/ruby/gems/3.3.0/gems/irb-1.11.1/lib/irb.rb:1075:in `each_top_level_statement'
from /Users/dorianmariefr/.asdf/installs/ruby/3.3.0/lib/ruby/gems/3.3.0/gems/irb-1.11.1/lib/irb.rb:997:in `eval_input'
from /Users/dorianmariefr/.asdf/installs/ruby/3.3.0/lib/ruby/gems/3.3.0/gems/irb-1.11.1/lib/irb.rb:984:in `block in run'
from /Users/dorianmariefr/.asdf/installs/ruby/3.3.0/lib/ruby/gems/3.3.0/gems/irb-1.11.1/lib/irb.rb:983:in `catch'
from /Users/dorianmariefr/.asdf/installs/ruby/3.3.0/lib/ruby/gems/3.3.0/gems/irb-1.11.1/lib/irb.rb:983:in `run'
from /Users/dorianmariefr/.asdf/installs/ruby/3.3.0/lib/ruby/gems/3.3.0/gems/irb-1.11.1/lib/irb.rb:1541:in `irb'
from <internal:prelude>:5:in `irb'
from /Users/dorianmariefr/.asdf/installs/ruby/3.3.0/lib/ruby/gems/3.3.0/gems/dorian-pretty-0.1.0/bin/pretty:81:in `rescue in block in <top (required)>'
from /Users/dorianmariefr/.asdf/installs/ruby/3.3.0/lib/ruby/gems/3.3.0/gems/dorian-pretty-0.1.0/bin/pretty:75:in `block in <top (required)>'
from /Users/dorianmariefr/.asdf/installs/ruby/3.3.0/lib/ruby/gems/3.3.0/gems/dorian-pretty-0.1.0/bin/pretty:74:in `select'
from /Users/dorianmariefr/.asdf/installs/ruby/3.3.0/lib/ruby/gems/3.3.0/gems/dorian-pretty-0.1.0/bin/pretty:74:in `<top (required)>'
from /Users/dorianmariefr/.asdf/installs/ruby/3.3.0/bin/pretty:25:in `load'
from /Users/dorianmariefr/.asdf/installs/ruby/3.3.0/bin/pretty:25:in `<main>'
/Users/dorianmariefr/.asdf/installs/ruby/3.3.0/lib/ruby/gems/3.3.0/gems/dorian-pretty-0.1.0/bin/pretty:78:in `block in <top (required)>': invalid byte sequence in UTF-8 (ArgumentError)
from /Users/dorianmariefr/.asdf/installs/ruby/3.3.0/lib/ruby/gems/3.3.0/gems/dorian-pretty-0.1.0/bin/pretty:74:in `select'
from /Users/dorianmariefr/.asdf/installs/ruby/3.3.0/lib/ruby/gems/3.3.0/gems/dorian-pretty-0.1.0/bin/pretty:74:in `<top (required)>'
from /Users/dorianmariefr/.asdf/installs/ruby/3.3.0/bin/pretty:25:in `load'
from /Users/dorianmariefr/.asdf/installs/ruby/3.3.0/bin/pretty:25:in `<main>'
Maybe IRB bug!
Result of irb_info
Ruby version: 3.3.0
IRB version: irb 1.11.1 (2024-01-08)
InputMethod: RelineInputMethod with Reline 0.4.2
Completion: Autocomplete, RegexpCompletor
.irbrc path: /Users/dorianmariefr/.irbrc
RUBY_PLATFORM: arm64-darwin23
East Asian Ambiguous Width: 1
Terminal Emulator
Terminal.app in macOS with fish
Setting Files
My config was commented out
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working
Activity
st0012 commentedon Jan 31, 2024
@dorianmariefr Thanks for reporting. Does this always happen when you Ctrl-c in a pager, or intermittently, or only when paging certain content? Asking because I can't reproduce it myself, so more information will help a lot.
tompng commentedon Feb 1, 2024
Reproduced by
then type
\C-candqwith
PAGER=lessless --version #=> less 581.2 (POSIX regular expressions)To reproduce, the output bytes passed to pager should be large enough. (>= 72*1024+1 bytes in my environment)
Maybe related to pager's read buffer size, I guess.
dorianmariecom commentedon Aug 14, 2024
Thanks ❤️