tarcieri/iobuffer — Issue #6: IOBuffer crashes when reading from a closed pipe
Author: loganb
Created: 2012-02-13 03:17:44+00:00
State: open

logan@bender (OSX) ~/Work/tapestry/spec $ irb
irb(main):001:0> require 'iobuffer'
=> true
irb(main):002:0> buf = IO::Buffer.new
=> #
irb(main):003:0> (rp, wp) = File.pipe
=> [#, #]
irb(main):004:0> buf.read_from(rp)
=> 0
irb(main):005:0> wp.close
=> nil
irb(main):006:0> buf.read_from(rp)
(irb):6: [BUG] rb_sys_fail(read) - errno == 0
ruby 1.9.3p0 (2011-10-30 revision 33570) [x86_64-darwin11]

-- Control frame information -----------------------------------------------
c:0024 p:---- s:0086 b:0086 l:000085 d:000085 CFUNC :read_from
c:0023 p:0014 s:0082 b:0082 l:001bc8 d:000081 EVAL (irb):6
c:0022 p:---- s:0080 b:0080 l:000079 d:000079 FINISH
c:0021 p:---- s:0078 b:0078 l:000077 d:000077 CFUNC :eval
c:0020 p:0028 s:0071 b:0071 l:000070 d:000070 METHOD /Volumes/Gentoo/usr/lib/ruby/1.9.1/irb/workspace.rb:80
c:0019 p:0033 s:0064 b:0063 l:000062 d:000062 METHOD /Volumes/Gentoo/usr/lib/ruby/1.9.1/irb/context.rb:254
c:0018 p:0031 s:0058 b:0058 l:001d68 d:000057 BLOCK /Volumes/Gentoo/usr/lib/ruby/1.9.1/irb.rb:159
c:0017 p:0042 s:0050 b:0050 l:000049 d:000049 METHOD /Volumes/Gentoo/usr/lib/ruby/1.9.1/irb.rb:273
c:0016 p:0011 s:0045 b:0045 l:001d68 d:000044 BLOCK /Volumes/Gentoo/usr/lib/ruby/1.9.1/irb.rb:156
c:0015 p:0144 s:0041 b:0041 l:000024 d:000040 BLOCK /Volumes/Gentoo/usr/lib/ruby/1.9.1/irb/ruby-lex.rb:243
c:0014 p:---- s:0038 b:0038 l:000037 d:000037 FINISH
c:0013 p:---- s:0036 b:0036 l:000035 d:000035 CFUNC :loop
c:0012 p:0009 s:0033 b:0033 l:000024 d:000032 BLOCK /Volumes/Gentoo/usr/lib/ruby/1.9.1/irb/ruby-lex.rb:229
c:0011 p:---- s:0031 b:0031 l:000030 d:000030 FINISH
c:0010 p:---- s:0029 b:0029 l:000028 d:000028 CFUNC :catch
c:0009 p:0023 s:0025 b:0025 l:000024 d:000024 METHOD /Volumes/Gentoo/usr/lib/ruby/1.9.1/irb/ruby-lex.rb:228
c:0008 p:0046 s:0022 b:0022 l:001d68 d:001d68 METHOD /Volumes/Gentoo/usr/lib/ruby/1.9.1/irb.rb:155
c:0007 p:0011 s:0019 b:0019 l:002198 d:000018 BLOCK /Volumes/Gentoo/usr/lib/ruby/1.9.1/irb.rb:70
c:0006 p:---- s:0017 b:0017 l:000016 d:000016 FINISH
c:0005 p:---- s:0015 b:0015 l:000014 d:000014 CFUNC :catch
c:0004 p:0183 s:0011 b:0011 l:002198 d:002198 METHOD /Volumes/Gentoo/usr/lib/ruby/1.9.1/irb.rb:69
c:0003 p:0039 s:0006 b:0006 l:001f68 d:0005e8 EVAL /Volumes/Gentoo/usr/bin/irb:12
c:0002 p:---- s:0004 b:0004 l:000003 d:000003 FINISH
c:0001 p:0000 s:0002 b:0002 l:001f68 d:001f68 TOP

-- Ruby level backtrace information ----------------------------------------
/Volumes/Gentoo/usr/bin/irb:12:in `

'
/Volumes/Gentoo/usr/lib/ruby/1.9.1/irb.rb:69:in `start'
/Volumes/Gentoo/usr/lib/ruby/1.9.1/irb.rb:69:in `catch'
/Volumes/Gentoo/usr/lib/ruby/1.9.1/irb.rb:70:in `block in start'
/Volumes/Gentoo/usr/lib/ruby/1.9.1/irb.rb:155:in `eval_input'
/Volumes/Gentoo/usr/lib/ruby/1.9.1/irb/ruby-lex.rb:228:in `each_top_level_statement'
/Volumes/Gentoo/usr/lib/ruby/1.9.1/irb/ruby-lex.rb:228:in `catch'
/Volumes/Gentoo/usr/lib/ruby/1.9.1/irb/ruby-lex.rb:229:in `block in each_top_level_statement'
/Volumes/Gentoo/usr/lib/ruby/1.9.1/irb/ruby-lex.rb:229:in `loop'
/Volumes/Gentoo/usr/lib/ruby/1.9.1/irb/ruby-lex.rb:243:in `block (2 levels) in each_top_level_statement'
/Volumes/Gentoo/usr/lib/ruby/1.9.1/irb.rb:156:in `block in eval_input'
/Volumes/Gentoo/usr/lib/ruby/1.9.1/irb.rb:273:in `signal_status'
/Volumes/Gentoo/usr/lib/ruby/1.9.1/irb.rb:159:in `block (2 levels) in eval_input'
/Volumes/Gentoo/usr/lib/ruby/1.9.1/irb/context.rb:254:in `evaluate'
/Volumes/Gentoo/usr/lib/ruby/1.9.1/irb/workspace.rb:80:in `evaluate'
/Volumes/Gentoo/usr/lib/ruby/1.9.1/irb/workspace.rb:80:in `eval'
(irb):6:in `irb_binding'
(irb):6:in `read_from'

-- C level backtrace information -------------------------------------------

See Crash Report log file under ~/Library/Logs/CrashReporter or
/Library/Logs/CrashReporter, for the more detail of.

-- Other runtime information -----------------------------------------------

* Loaded script: irb

* Loaded features:

0 enumerator.so
1 /Volumes/Gentoo/usr/lib/ruby/1.9.1/x86_64-darwin11/enc/encdb.bundle
2 /Volumes/Gentoo/usr/lib/ruby/1.9.1/x86_64-darwin11/enc/trans/transdb.bundle
3 /Volumes/Gentoo/usr/lib/ruby/site_ruby/1.9.1/rubygems/defaults.rb
4 /Volumes/Gentoo/usr/lib/ruby/1.9.1/x86_64-darwin11/rbconfig.rb
5 /Volumes/Gentoo/usr/lib/ruby/site_ruby/1.9.1/rubygems/deprecate.rb
6 /Volumes/Gentoo/usr/lib/ruby/site_ruby/1.9.1/rubygems/exceptions.rb
7 /Volumes/Gentoo/usr/lib/ruby/site_ruby/1.9.1/rubygems/defaults/operating_system.rb
8 /Volumes/Gentoo/usr/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb
9 /Volumes/Gentoo/usr/lib/ruby/site_ruby/1.9.1/rubygems.rb
10 /Volumes/Gentoo/usr/lib/ruby/site_ruby/1.9.1/auto_gem.rb
11 /Volumes/Gentoo/usr/lib/ruby/1.9.1/e2mmap.rb
12 /Volumes/Gentoo/usr/lib/ruby/1.9.1/irb/init.rb
13 /Volumes/Gentoo/usr/lib/ruby/1.9.1/irb/workspace.rb
14 /Volumes/Gentoo/usr/lib/ruby/1.9.1/irb/inspector.rb
15 /Volumes/Gentoo/usr/lib/ruby/1.9.1/irb/context.rb
16 /Volumes/Gentoo/usr/lib/ruby/1.9.1/irb/extend-command.rb
17 /Volumes/Gentoo/usr/lib/ruby/1.9.1/irb/output-method.rb
18 /Volumes/Gentoo/usr/lib/ruby/1.9.1/irb/notifier.rb
19 /Volumes/Gentoo/usr/lib/ruby/1.9.1/irb/slex.rb
20 /Volumes/Gentoo/usr/lib/ruby/1.9.1/irb/ruby-token.rb
21 /Volumes/Gentoo/usr/lib/ruby/1.9.1/irb/ruby-lex.rb
22 /Volumes/Gentoo/usr/lib/ruby/1.9.1/irb/src_encoding.rb
23 /Volumes/Gentoo/usr/lib/ruby/1.9.1/irb/magic-file.rb
24 /Volumes/Gentoo/usr/lib/ruby/1.9.1/x86_64-darwin11/readline.bundle
25 /Volumes/Gentoo/usr/lib/ruby/1.9.1/irb/input-method.rb
26 /Volumes/Gentoo/usr/lib/ruby/1.9.1/irb/locale.rb
27 /Volumes/Gentoo/usr/lib/ruby/1.9.1/irb.rb
28 /Volumes/Gentoo/usr/lib/ruby/site_ruby/1.9.1/rubygems/version.rb
29 /Volumes/Gentoo/usr/lib/ruby/site_ruby/1.9.1/rubygems/requirement.rb
30 /Volumes/Gentoo/usr/lib/ruby/site_ruby/1.9.1/rubygems/platform.rb
31 /Volumes/Gentoo/usr/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb
32 /Volumes/Gentoo/usr/lib/ruby/site_ruby/1.9.1/rubygems/path_support.rb
33 /Volumes/Gentoo/usr/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb
34 /Volumes/Gentoo/usr/lib/ruby/1.9.1/irb/ext/save-history.rb
35 /Volumes/Gentoo/usr/lib/ruby/1.9.1/irb/ext/history.rb
36 /Volumes/Gentoo/usr/local/lib/ruby/gems/1.9.1/gems/iobuffer-1.0.0/lib/iobuffer.bundle

[NOTE]
You may have encountered a bug in the Ruby interpreter or extension libraries.
Bug reports are welcome.
For details: http://www.ruby-lang.org/bugreport.html

Abort trap: 6
logan@bender (OSX) ~/Work/tapestry/spec $