Skip to content

[Alpine] irb causing segmentation fault #75

@soedar

Description

@soedar

Using the irb in the ruby:2.3.0-alpine container will frequently crash with a segmentation fault after entering a command (or just hitting the enter key several times)

It does appear to be crashing because of the readline library. Adding readline-dev in the build dependency phase does seem to create an image which does not crash. Any idea if that's the right fix?

Here is the log when irb crashes:

irb(main):001:0> 
/usr/local/lib/ruby/2.3.0/irb/input-method.rb:149: [BUG] Segmentation fault at 0x00000000000010
ruby 2.3.0p0 (2015-12-25 revision 53290) [x86_64-linux] 

-- Control frame information -----------------------------------------------
c:0022 p:---- s:0081 e:000080 CFUNC  :input= 
c:0021 p:0017 s:0077 e:000076 METHOD /usr/local/lib/ruby/2.3.0/irb/input-method.rb:149
c:0020 p:0013 s:0073 e:000072 BLOCK  /usr/local/lib/ruby/2.3.0/irb.rb:469
c:0019 p:0041 s:0070 e:000069 METHOD /usr/local/lib/ruby/2.3.0/irb.rb:623
c:0018 p:0011 s:0065 e:000064 BLOCK  /usr/local/lib/ruby/2.3.0/irb.rb:468 [FINISH]
c:0017 p:0017 s:0063 e:000062 METHOD /usr/local/lib/ruby/2.3.0/irb/ruby-lex.rb:189
c:0016 p:0016 s:0059 e:000058 METHOD /usr/local/lib/ruby/2.3.0/irb/ruby-lex.rb:104
c:0015 p:0024 s:0055 e:000054 METHOD /usr/local/lib/ruby/2.3.0/irb/slex.rb:206
c:0014 p:0043 s:0047 e:000046 METHOD /usr/local/lib/ruby/2.3.0/irb/slex.rb:76
c:0013 p:0045 s:0042 e:000041 METHOD /usr/local/lib/ruby/2.3.0/irb/ruby-lex.rb:283
c:0012 p:0014 s:0038 e:000037 METHOD /usr/local/lib/ruby/2.3.0/irb/ruby-lex.rb:265
c:0011 p:0024 s:0033 e:000032 BLOCK  /usr/local/lib/ruby/2.3.0/irb/ruby-lex.rb:236 [FINISH]
c:0010 p:---- s:0030 e:000029 CFUNC  :loop
c:0009 p:0009 s:0027 e:000026 BLOCK  /usr/local/lib/ruby/2.3.0/irb/ruby-lex.rb:232 [FINISH]
c:0008 p:---- s:0025 e:000024 CFUNC  :catch
c:0007 p:0018 s:0021 e:000020 METHOD /usr/local/lib/ruby/2.3.0/irb/ruby-lex.rb:231
c:0006 p:0037 s:0018 E:0019d0 METHOD /usr/local/lib/ruby/2.3.0/irb.rb:485
c:0005 p:0009 s:0015 e:000014 BLOCK  /usr/local/lib/ruby/2.3.0/irb.rb:395 [FINISH]
c:0004 p:---- s:0013 e:000012 CFUNC  :catch
c:0003 p:0177 s:0009 E:0024c0 METHOD /usr/local/lib/ruby/2.3.0/irb.rb:394
c:0002 p:0023 s:0004 E:000820 EVAL   /usr/local/bin/irb:11 [FINISH]
c:0001 p:0000 s:0002 E:000af0 (none) [FINISH]

-- Ruby level backtrace information ----------------------------------------
/usr/local/bin/irb:11:in `<main>'
/usr/local/lib/ruby/2.3.0/irb.rb:394:in `start'
/usr/local/lib/ruby/2.3.0/irb.rb:394:in `catch'
/usr/local/lib/ruby/2.3.0/irb.rb:395:in `block in start'
/usr/local/lib/ruby/2.3.0/irb.rb:485:in `eval_input'
/usr/local/lib/ruby/2.3.0/irb/ruby-lex.rb:231:in `each_top_level_statement'
/usr/local/lib/ruby/2.3.0/irb/ruby-lex.rb:231:in `catch'
/usr/local/lib/ruby/2.3.0/irb/ruby-lex.rb:232:in `block in each_top_level_statement'
/usr/local/lib/ruby/2.3.0/irb/ruby-lex.rb:232:in `loop'
/usr/local/lib/ruby/2.3.0/irb/ruby-lex.rb:236:in `block (2 levels) in each_top_level_statement'
/usr/local/lib/ruby/2.3.0/irb/ruby-lex.rb:265:in `lex'
/usr/local/lib/ruby/2.3.0/irb/ruby-lex.rb:283:in `token'
/usr/local/lib/ruby/2.3.0/irb/slex.rb:76:in `match'
/usr/local/lib/ruby/2.3.0/irb/slex.rb:206:in `match_io'
/usr/local/lib/ruby/2.3.0/irb/ruby-lex.rb:104:in `getc'
/usr/local/lib/ruby/2.3.0/irb/ruby-lex.rb:189:in `buf_input'
/usr/local/lib/ruby/2.3.0/irb.rb:468:in `block in eval_input'
/usr/local/lib/ruby/2.3.0/irb.rb:623:in `signal_status'
/usr/local/lib/ruby/2.3.0/irb.rb:469:in `block (2 levels) in eval_input'
/usr/local/lib/ruby/2.3.0/irb/input-method.rb:149:in `gets'
/usr/local/lib/ruby/2.3.0/irb/input-method.rb:149:in `input='

-- Machine register context ------------------------------------------------
 RIP: 0x00007f69c8573598 RBP: 0x00005616c5af1890 RSP: 0x00007ffe8e91c838
 RAX: 0x0000000000000000 RBX: 0x0000000000000021 RCX: 0x0000000000000421
 RDX: 0x00007f69c87d6328 RDI: 0x00005616c5af1890 RSI: 0x0000000000000023
  R8: 0x0000000000000300  R9: 0x0000000000000348 R10: 0x0000000000000003
 R11: 0x0000000000000202 R12: 0x0000000000000023 R13: 0x00007f69c87d6330
 R14: 0x00007f69c87d6328 R15: 0x00007f69c87d5fe0 EFL: 0x0000000000010297

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

* Loaded script: irb

* Loaded features:

    0 enumerator.so
    1 thread.rb
    2 rational.so
    3 complex.so
    4 /usr/local/lib/ruby/2.3.0/x86_64-linux/enc/encdb.so
    5 /usr/local/lib/ruby/2.3.0/x86_64-linux/enc/trans/transdb.so
    6 /usr/local/lib/ruby/2.3.0/unicode_normalize.rb
    7 /usr/local/lib/ruby/2.3.0/x86_64-linux/rbconfig.rb
    8 /usr/local/lib/ruby/site_ruby/2.3.0/rubygems/compatibility.rb
    9 /usr/local/lib/ruby/site_ruby/2.3.0/rubygems/defaults.rb
   10 /usr/local/lib/ruby/site_ruby/2.3.0/rubygems/deprecate.rb
   11 /usr/local/lib/ruby/site_ruby/2.3.0/rubygems/errors.rb
   12 /usr/local/lib/ruby/site_ruby/2.3.0/rubygems/version.rb
   13 /usr/local/lib/ruby/site_ruby/2.3.0/rubygems/requirement.rb
   14 /usr/local/lib/ruby/site_ruby/2.3.0/rubygems/platform.rb
   15 /usr/local/lib/ruby/site_ruby/2.3.0/rubygems/basic_specification.rb
   16 /usr/local/lib/ruby/site_ruby/2.3.0/rubygems/stub_specification.rb
   17 /usr/local/lib/ruby/site_ruby/2.3.0/rubygems/util/list.rb
   18 /usr/local/lib/ruby/2.3.0/x86_64-linux/stringio.so
   19 /usr/local/lib/ruby/site_ruby/2.3.0/rubygems/specification.rb
   20 /usr/local/lib/ruby/site_ruby/2.3.0/rubygems/exceptions.rb
   21 /usr/local/lib/ruby/site_ruby/2.3.0/rubygems/core_ext/kernel_gem.rb
   22 /usr/local/lib/ruby/2.3.0/monitor.rb
   23 /usr/local/lib/ruby/site_ruby/2.3.0/rubygems/core_ext/kernel_require.rb
   24 /usr/local/lib/ruby/site_ruby/2.3.0/rubygems.rb
   25 /usr/local/lib/ruby/site_ruby/2.3.0/rubygems/path_support.rb
   26 /usr/local/lib/ruby/site_ruby/2.3.0/rubygems/dependency.rb
   27 /usr/local/lib/ruby/gems/2.3.0/gems/did_you_mean-1.0.0/lib/did_you_mean/version.rb
   28 /usr/local/lib/ruby/gems/2.3.0/gems/did_you_mean-1.0.0/lib/did_you_mean/core_ext/name_error.rb
   29 /usr/local/lib/ruby/gems/2.3.0/gems/did_you_mean-1.0.0/lib/did_you_mean/levenshtein.rb
   30 /usr/local/lib/ruby/gems/2.3.0/gems/did_you_mean-1.0.0/lib/did_you_mean/jaro_winkler.rb
   31 /usr/local/lib/ruby/gems/2.3.0/gems/did_you_mean-1.0.0/lib/did_you_mean/spell_checkable.rb
   32 /usr/local/lib/ruby/2.3.0/delegate.rb
   33 /usr/local/lib/ruby/gems/2.3.0/gems/did_you_mean-1.0.0/lib/did_you_mean/spell_checkers/name_error_checkers/class_name_checker.rb
   34 /usr/local/lib/ruby/gems/2.3.0/gems/did_you_mean-1.0.0/lib/did_you_mean/spell_checkers/name_error_checkers/variable_name_checker.rb
   35 /usr/local/lib/ruby/gems/2.3.0/gems/did_you_mean-1.0.0/lib/did_you_mean/spell_checkers/name_error_checkers.rb
   36 /usr/local/lib/ruby/gems/2.3.0/gems/did_you_mean-1.0.0/lib/did_you_mean/spell_checkers/method_name_checker.rb
   37 /usr/local/lib/ruby/gems/2.3.0/gems/did_you_mean-1.0.0/lib/did_you_mean/spell_checkers/null_checker.rb
   38 /usr/local/lib/ruby/gems/2.3.0/gems/did_you_mean-1.0.0/lib/did_you_mean/formatter.rb
   39 /usr/local/lib/ruby/gems/2.3.0/gems/did_you_mean-1.0.0/lib/did_you_mean.rb
   40 /usr/local/lib/ruby/2.3.0/e2mmap.rb
   41 /usr/local/lib/ruby/2.3.0/irb/init.rb
   42 /usr/local/lib/ruby/2.3.0/irb/workspace.rb
   43 /usr/local/lib/ruby/2.3.0/irb/inspector.rb
   44 /usr/local/lib/ruby/2.3.0/irb/context.rb
   45 /usr/local/lib/ruby/2.3.0/irb/extend-command.rb
   46 /usr/local/lib/ruby/2.3.0/irb/output-method.rb
   47 /usr/local/lib/ruby/2.3.0/irb/notifier.rb
   48 /usr/local/lib/ruby/2.3.0/irb/slex.rb
   49 /usr/local/lib/ruby/2.3.0/irb/ruby-token.rb
   50 /usr/local/lib/ruby/2.3.0/irb/ruby-lex.rb
   51 /usr/local/lib/ruby/2.3.0/irb/src_encoding.rb
   52 /usr/local/lib/ruby/2.3.0/irb/magic-file.rb
   53 /usr/local/lib/ruby/2.3.0/x86_64-linux/readline.so
   54 /usr/local/lib/ruby/2.3.0/irb/input-method.rb
   55 /usr/local/lib/ruby/2.3.0/irb/locale.rb
   56 /usr/local/lib/ruby/2.3.0/irb.rb
$ docker -v                                                                                                                                                                     
Docker version 1.10.3, build 20f81dd

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions