Bug 1331458 - Segfault on d8 startup or via rubygem-therubyracer
Summary: Segfault on d8 startup or via rubygem-therubyracer
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: v8
Version: 24
Hardware: Unspecified
OS: Unspecified
unspecified
high
Target Milestone: ---
Assignee: Vít Ondruch
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On: 1331480
Blocks:
TreeView+ depends on / blocked
 
Reported: 2016-04-28 14:44 UTC by Dominic Cleal
Modified: 2016-06-20 22:25 UTC (History)
4 users (show)

Fixed In Version: v8-3.14.5.10-24.fc24
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2016-06-20 22:25:40 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)
Fix SEGSEGV with GCC6 (4.53 KB, patch)
2016-06-02 12:10 UTC, Vít Ondruch
no flags Details | Diff

Description Dominic Cleal 2016-04-28 14:44:58 UTC
Description of problem:
Calling V8::Context.new causes a segfault in Ruby MRI. This is also seen when combined with rubygem-execjs and precompiling Rails application assets.

Version-Release number of selected component (if applicable):
rubygem-therubyracer-0.11.0-13.fc24

Installing:
 ruby                     x86_64     2.3.0-54.fc24             fedora      76 k
 ruby-libs                x86_64     2.3.0-54.fc24             fedora     2.9 M
 rubygem-therubyracer     x86_64     0.11.0-13.fc24            fedora      70 k
Installing for dependencies:
 libicu                   x86_64     56.1-4.fc24               fedora     8.3 M
 libyaml                  x86_64     0.1.6-8.fc24              fedora      58 k
 rubygem-psych            x86_64     2.0.17-54.fc24            fedora      87 k
 rubygem-ref              noarch     1.0.5-4.fc24              fedora      19 k
 rubygems                 noarch     2.5.1-54.fc24             fedora     280 k
 rubypick                 noarch     1.1.1-5.fc24              fedora      11 k
 v8                       x86_64     1:3.14.5.10-23.fc24       fedora     3.0 M

How reproducible:
Always

Steps to Reproduce:
1. ruby -rv8 -e 'puts V8::Context.new.eval("7 * 6")'

Actual results:
/usr/share/gems/gems/therubyracer-0.11.0/lib/v8/context.rb:66: [BUG] Segmentation fault at 0x00000000000018
ruby 2.3.0p0 (2015-12-25 revision 53290) [x86_64-linux]

Expected results:
42

Additional info:
Works fine on F21-23, segfault is new in F24.

Can't test on Rawhide as v8 isn't built against the current icu package.

+ ruby -rv8 -e 'puts V8::Context.new.eval("7 * 6")'
/usr/share/gems/gems/therubyracer-0.11.0/lib/v8/context.rb:66: [BUG] Segmentation fault at 0x00000000000018
ruby 2.3.0p0 (2015-12-25 revision 53290) [x86_64-linux]
-- Control frame information -----------------------------------------------
c:0005 p:---- s:0016 e:000015 CFUNC  :Locker
c:0004 p:0092 s:0013 E:001bb0 METHOD /usr/share/gems/gems/therubyracer-0.11.0/lib/v8/context.rb:66 [FINISH]
c:0003 p:---- s:0008 e:000007 CFUNC  :new
c:0002 p:0015 s:0005 E:001220 EVAL   -e:1 [FINISH]
c:0001 p:0000 s:0002 E:001f60 (none) [FINISH]
-- Ruby level backtrace information ----------------------------------------
-e:1:in `<main>'
-e:1:in `new'
/usr/share/gems/gems/therubyracer-0.11.0/lib/v8/context.rb:66:in `initialize'
/usr/share/gems/gems/therubyracer-0.11.0/lib/v8/context.rb:66:in `Locker'
-- Machine register context ------------------------------------------------
 RIP: 0x00007f1beabe32b0 RBP: 0x000055ee54944bc0 RSP: 0x00007ffcc6123be0
 RAX: 0x00007f1beabe3330 RBX: 0x000055ee54944bc0 RCX: 0x0000000000000000
 RDX: 0x0000000000000000 RDI: 0x000055ee54944bc0 RSI: 0x0000000000000000
  R8: 0x000055ee54948000  R9: 0x0000000000000000 R10: 0x0000000000001723
 R11: 0x00007f1beabe3290 R12: 0x000055ee54944c00 R13: 0x0000000000000000
 R14: 0x0000000000000040 R15: 0x0000000000000040 EFL: 0x0000000000010246
-- C level backtrace information -------------------------------------------
/lib64/libruby.so.2.3 [0x7f1bec92f065]
/lib64/libruby.so.2.3 [0x7f1bec92f29c]
/lib64/libruby.so.2.3 [0x7f1bec807be4]
/lib64/libruby.so.2.3 [0x7f1bec8ba48e]
/lib64/libpthread.so.0 [0x7f1bec58dc30]
/lib64/libv8.so.3(_ZN2v88internal10PagedSpace14AdvanceSweeperEl+0x20) [0x7f1beabe32b0]
/lib64/libv8.so.3(_ZN2v88internal10PagedSpace15SlowAllocateRawEi+0x23) [0x7f1beabe3353]
/lib64/libv8.so.3(_ZN2v88internal4Heap18AllocatePartialMapENS0_12InstanceTypeEi+0x233) [0x7f1beaa89803]
/lib64/libv8.so.3(_ZN2v88internal4Heap17CreateInitialMapsEv+0x16) [0x7f1beaa8db26]
/lib64/libv8.so.3(_ZN2v88internal4Heap5SetUpEb+0x3e2) [0x7f1beaa96a22]
/lib64/libv8.so.3(_ZN2v88internal7Isolate4InitEPNS0_12DeserializerE+0x4de) [0x7f1beaaf91be]
/lib64/libv8.so.3(_ZN2v86LockerC2EPNS_7IsolateE+0x71) [0x7f1beabfc141]
/usr/lib64/gems/ruby/therubyracer-0.11.0/v8/init.so(_ZN2rr6Locker16setupLockAndCallEPim+0x2b) [0x7f1beafd19db]
/usr/lib64/gems/ruby/therubyracer-0.11.0/v8/init.so(_ZN2rr6Locker6doLockEiPmm+0x77) [0x7f1beafd1aa7]
/lib64/libruby.so.2.3 [0x7f1bec91c150]
/lib64/libruby.so.2.3 [0x7f1bec92aa23]
/lib64/libruby.so.2.3 [0x7f1bec92ba63]
/lib64/libruby.so.2.3 [0x7f1bec91ff17]
/lib64/libruby.so.2.3 [0x7f1bec9253df]
/lib64/libruby.so.2.3 [0x7f1bec9271cc]
/lib64/libruby.so.2.3 [0x7f1bec927e52]
/lib64/libruby.so.2.3(rb_class_new_instance+0x21) [0x7f1bec85a491]
/lib64/libruby.so.2.3 [0x7f1bec91c150]
/lib64/libruby.so.2.3 [0x7f1bec92aa23]
/lib64/libruby.so.2.3 [0x7f1bec92ba63]
/lib64/libruby.so.2.3 [0x7f1bec91ffe3]
/lib64/libruby.so.2.3 [0x7f1bec9253df]
/lib64/libruby.so.2.3 [0x7f1bec80afad]
/lib64/libruby.so.2.3(ruby_exec_node+0x1d) [0x7f1bec80c9dd]
/lib64/libruby.so.2.3(ruby_run_node+0x1e) [0x7f1bec80eaae]
/usr/bin/ruby-mri [0x55ee53a5293b]
/lib64/libc.so.6(__libc_start_main+0xf1) [0x7f1beba8b721]
/usr/bin/ruby-mri(_start+0x29) [0x55ee53a52969]
-- Other runtime information -----------------------------------------------
* Loaded script: -e
* Loaded features:
    0 enumerator.so
    1 thread.rb
    2 rational.so
    3 complex.so
    4 /usr/lib64/ruby/enc/encdb.so
    5 /usr/lib64/ruby/enc/trans/transdb.so
    6 /usr/share/ruby/unicode_normalize.rb
    7 /usr/lib64/ruby/rbconfig.rb
    8 /usr/share/rubygems/rubygems/compatibility.rb
    9 /usr/share/rubygems/rubygems/defaults.rb
   10 /usr/share/rubygems/rubygems/deprecate.rb
   11 /usr/share/rubygems/rubygems/errors.rb
   12 /usr/share/rubygems/rubygems/version.rb
   13 /usr/share/rubygems/rubygems/requirement.rb
   14 /usr/share/rubygems/rubygems/platform.rb
   15 /usr/share/rubygems/rubygems/basic_specification.rb
   16 /usr/share/rubygems/rubygems/stub_specification.rb
   17 /usr/share/rubygems/rubygems/util/list.rb
   18 /usr/lib64/ruby/stringio.so
   19 /usr/share/rubygems/rubygems/specification.rb
   20 /usr/share/rubygems/rubygems/exceptions.rb
   21 /usr/share/rubygems/rubygems/defaults/operating_system.rb
   22 /usr/share/rubygems/rubygems/core_ext/kernel_gem.rb
   23 /usr/share/ruby/monitor.rb
   24 /usr/share/rubygems/rubygems/core_ext/kernel_require.rb
   25 /usr/share/rubygems/rubygems.rb
   26 /usr/share/rubygems/rubygems/path_support.rb
   27 /usr/share/rubygems/rubygems/dependency.rb
   28 /usr/share/gems/gems/therubyracer-0.11.0/lib/v8/version.rb
   29 /usr/share/gems/gems/ref-1.0.5/lib/ref/abstract_reference_value_map.rb
   30 /usr/share/gems/gems/ref-1.0.5/lib/ref/abstract_reference_key_map.rb
   31 /usr/share/gems/gems/ref-1.0.5/lib/ref/reference.rb
   32 /usr/share/gems/gems/ref-1.0.5/lib/ref/reference_queue.rb
   33 /usr/share/gems/gems/ref-1.0.5/lib/ref/safe_monitor.rb
   34 /usr/share/gems/gems/ref-1.0.5/lib/ref/soft_reference.rb
   35 /usr/share/ruby/delegate.rb
   36 /usr/share/ruby/weakref.rb
   37 /usr/share/gems/gems/ref-1.0.5/lib/ref/weak_reference/weak_ref.rb
   38 /usr/share/gems/gems/ref-1.0.5/lib/ref/soft_key_map.rb
   39 /usr/share/gems/gems/ref-1.0.5/lib/ref/soft_value_map.rb
   40 /usr/share/gems/gems/ref-1.0.5/lib/ref/strong_reference.rb
   41 /usr/share/gems/gems/ref-1.0.5/lib/ref/weak_key_map.rb
   42 /usr/share/gems/gems/ref-1.0.5/lib/ref/weak_value_map.rb
   43 /usr/share/gems/gems/ref-1.0.5/lib/ref.rb
   44 /usr/share/gems/gems/therubyracer-0.11.0/lib/v8/weak.rb
   45 /usr/lib64/gems/ruby/therubyracer-0.11.0/v8/init.so
   46 /usr/share/gems/gems/therubyracer-0.11.0/lib/v8/error.rb
   47 /usr/share/gems/gems/therubyracer-0.11.0/lib/v8/stack.rb
   48 /usr/share/gems/gems/therubyracer-0.11.0/lib/v8/conversion/fundamental.rb
   49 /usr/share/gems/gems/therubyracer-0.11.0/lib/v8/conversion/indentity.rb
   50 /usr/share/gems/gems/therubyracer-0.11.0/lib/v8/conversion/reference.rb
   51 /usr/share/gems/gems/therubyracer-0.11.0/lib/v8/conversion/primitive.rb
   52 /usr/share/gems/gems/therubyracer-0.11.0/lib/v8/conversion/code.rb
   53 /usr/share/gems/gems/therubyracer-0.11.0/lib/v8/conversion/class.rb
   54 /usr/share/gems/gems/therubyracer-0.11.0/lib/v8/conversion/object.rb
   55 /usr/share/gems/gems/therubyracer-0.11.0/lib/v8/conversion/time.rb
   56 /usr/share/gems/gems/therubyracer-0.11.0/lib/v8/conversion/hash.rb
   57 /usr/share/gems/gems/therubyracer-0.11.0/lib/v8/conversion/array.rb
   58 /usr/share/gems/gems/therubyracer-0.11.0/lib/v8/conversion/proc.rb
   59 /usr/share/gems/gems/therubyracer-0.11.0/lib/v8/conversion/method.rb
   60 /usr/share/gems/gems/therubyracer-0.11.0/lib/v8/conversion/symbol.rb
   61 /usr/share/gems/gems/therubyracer-0.11.0/lib/v8/conversion/string.rb
   62 /usr/share/gems/gems/therubyracer-0.11.0/lib/v8/conversion/fixnum.rb
   63 /usr/share/gems/gems/therubyracer-0.11.0/lib/v8/conversion/bignum.rb
   64 /usr/share/gems/gems/therubyracer-0.11.0/lib/v8/conversion.rb
   65 /usr/share/ruby/set.rb
   66 /usr/share/gems/gems/therubyracer-0.11.0/lib/v8/access/names.rb
   67 /usr/share/gems/gems/therubyracer-0.11.0/lib/v8/access/indices.rb
   68 /usr/share/gems/gems/therubyracer-0.11.0/lib/v8/access/invocation.rb
   69 /usr/share/gems/gems/therubyracer-0.11.0/lib/v8/access.rb
   70 /usr/share/gems/gems/therubyracer-0.11.0/lib/v8/context.rb
   71 /usr/share/gems/gems/therubyracer-0.11.0/lib/v8/object.rb
   72 /usr/share/gems/gems/therubyracer-0.11.0/lib/v8/array.rb
   73 /usr/share/gems/gems/therubyracer-0.11.0/lib/v8/function.rb
   74 /usr/share/gems/gems/therubyracer-0.11.0/lib/v8.rb
* Process memory map:
1d3949bc000-1d3949bd000 r-xp 00000000 00:00 0 
3524d1ef000-3526d1ef000 ---p 00000000 00:00 0 
12c9e1ee4000-12c9e1ee5000 r-xp 00000000 00:00 0 
142bbebda000-142bbebdb000 r-xp 00000000 00:00 0 
244f92000000-244f92f00000 ---p 00000000 00:00 0 
244f92f00000-244f93000000 rw-p 00000000 00:00 0 
244f93000000-244f94000000 ---p 00000000 00:00 0 
29de84a1b000-29de84a1c000 r-xp 00000000 00:00 0 
39f1de68b000-39f1de68c000 r-xp 00000000 00:00 0 
55ee53a52000-55ee53a53000 r-xp 00000000 00:26 84020                      /usr/bin/ruby-mri
55ee53c52000-55ee53c53000 r--p 00000000 00:26 84020                      /usr/bin/ruby-mri
55ee53c53000-55ee53c54000 rw-p 00001000 00:26 84020                      /usr/bin/ruby-mri
55ee54482000-55ee5496b000 rw-p 00000000 00:00 0                          [heap]
7f1be76b8000-7f1be78c3000 r--s 00000000 00:26 70436                      /usr/lib64/libc-2.23.so
7f1be78c3000-7f1be7e29000 r--s 00000000 00:26 84059                      /usr/lib64/libv8.so.3.14.5
7f1be7e29000-7f1be80b0000 r--s 00000000 00:26 83576                      /usr/lib64/libruby.so.2.3.0
7f1be80b0000-7f1be9893000 r-xp 00000000 00:26 84034                      /usr/lib64/libicudata.so.56.1
7f1be9893000-7f1be9a93000 ---p 017e3000 00:26 84034                      /usr/lib64/libicudata.so.56.1
7f1be9a93000-7f1be9a94000 r--p 017e3000 00:26 84034                      /usr/lib64/libicudata.so.56.1
7f1be9a94000-7f1be9a95000 rw-p 00000000 00:00 0 
7f1be9a95000-7f1be9c1b000 r-xp 00000000 00:26 84048                      /usr/lib64/libicuuc.so.56.1
7f1be9c1b000-7f1be9e1a000 ---p 00186000 00:26 84048                      /usr/lib64/libicuuc.so.56.1
7f1be9e1a000-7f1be9e2b000 r--p 00185000 00:26 84048                      /usr/lib64/libicuuc.so.56.1
7f1be9e2b000-7f1be9e2c000 rw-p 00196000 00:26 84048                      /usr/lib64/libicuuc.so.56.1
7f1be9e2c000-7f1be9e2e000 rw-p 00000000 00:00 0 
7f1be9e2e000-7f1bea099000 r-xp 00000000 00:26 84036                      /usr/lib64/libicui18n.so.56.1
7f1bea099000-7f1bea299000 ---p 0026b000 00:26 84036                      /usr/lib64/libicui18n.so.56.1
7f1bea299000-7f1bea2a8000 r--p 0026b000 00:26 84036                      /usr/lib64/libicui18n.so.56.1
7f1bea2a8000-7f1bea2a9000 rw-p 0027a000 00:26 84036                      /usr/lib64/libicui18n.so.56.1
7f1bea2a9000-7f1bea2bf000 r-xp 00000000 00:26 65441                      /usr/lib64/libgcc_s-6.0.0-20160406.so.1
7f1bea2bf000-7f1bea4be000 ---p 00016000 00:26 65441                      /usr/lib64/libgcc_s-6.0.0-20160406.so.1
7f1bea4be000-7f1bea4bf000 r--p 00015000 00:26 65441                      /usr/lib64/libgcc_s-6.0.0-20160406.so.1
7f1bea4bf000-7f1bea4c0000 rw-p 00016000 00:26 65441                      /usr/lib64/libgcc_s-6.0.0-20160406.so.1
7f1bea4c0000-7f1bea638000 r-xp 00000000 00:26 70791                      /usr/lib64/libstdc++.so.6.0.22
7f1bea638000-7f1bea838000 ---p 00178000 00:26 70791                      /usr/lib64/libstdc++.so.6.0.22
7f1bea838000-7f1bea842000 r--p 00178000 00:26 70791                      /usr/lib64/libstdc++.so.6.0.22
7f1bea842000-7f1bea844000 rw-p 00182000 00:26 70791                      /usr/lib64/libstdc++.so.6.0.22
7f1bea844000-7f1bea848000 rw-p 00000000 00:00 0 
7f1bea848000-7f1bead7c000 r-xp 00000000 00:26 84059                      /usr/lib64/libv8.so.3.14.5
7f1bead7c000-7f1beaf7c000 ---p 00534000 00:26 84059                      /usr/lib64/libv8.so.3.14.5
7f1beaf7c000-7f1beaf9d000 r--p 00534000 00:26 84059                      /usr/lib64/libv8.so.3.14.5
7f1beaf9d000-7f1beafab000 rw-p 00555000 00:26 84059                      /usr/lib64/libv8.so.3.14.5
7f1beafab000-7f1beafae000 rw-p 00000000 00:00 0 
7f1beafae000-7f1beafd9000 r-xp 00000000 00:26 84359                      /usr/lib64/gems/ruby/therubyracer-0.11.0/v8/init.so
7f1beafd9000-7f1beb1d9000 ---p 0002b000 00:26 84359                      /usr/lib64/gems/ruby/therubyracer-0.11.0/v8/init.so
7f1beb1d9000-7f1beb1db000 r--p 0002b000 00:26 84359                      /usr/lib64/gems/ruby/therubyracer-0.11.0/v8/init.so
7f1beb1db000-7f1beb1dc000 rw-p 0002d000 00:26 84359                      /usr/lib64/gems/ruby/therubyracer-0.11.0/v8/init.so
7f1beb1dc000-7f1beb1e3000 r-xp 00000000 00:26 83674                      /usr/lib64/ruby/stringio.so
7f1beb1e3000-7f1beb3e2000 ---p 00007000 00:26 83674                      /usr/lib64/ruby/stringio.so
7f1beb3e2000-7f1beb3e3000 r--p 00006000 00:26 83674                      /usr/lib64/ruby/stringio.so
7f1beb3e3000-7f1beb3e4000 rw-p 00000000 00:00 0 
7f1beb3e4000-7f1beb3e6000 r-xp 00000000 00:26 83638                      /usr/lib64/ruby/enc/trans/transdb.so
7f1beb3e6000-7f1beb5e6000 ---p 00002000 00:26 83638                      /usr/lib64/ruby/enc/trans/transdb.so
7f1beb5e6000-7f1beb5e7000 r--p 00002000 00:26 83638                      /usr/lib64/ruby/enc/trans/transdb.so
7f1beb5e7000-7f1beb5e8000 rw-p 00000000 00:00 0 
7f1beb5e8000-7f1beb5ea000 r-xp 00000000 00:26 83595                      /usr/lib64/ruby/enc/encdb.so
7f1beb5ea000-7f1beb7e9000 ---p 00002000 00:26 83595                      /usr/lib64/ruby/enc/encdb.so
7f1beb7e9000-7f1beb7ea000 r--p 00001000 00:26 83595                      /usr/lib64/ruby/enc/encdb.so
7f1beb7ea000-7f1beb7eb000 rw-p 00000000 00:00 0 
7f1beb7eb000-7f1beb865000 r-xp 00000000 00:26 70225                      /usr/lib64/libfreebl3.so
7f1beb865000-7f1beba64000 ---p 0007a000 00:26 70225                      /usr/lib64/libfreebl3.so
7f1beba64000-7f1beba66000 r--p 00079000 00:26 70225                      /usr/lib64/libfreebl3.so
7f1beba66000-7f1beba67000 rw-p 0007b000 00:26 70225                      /usr/lib64/libfreebl3.so
7f1beba67000-7f1beba6b000 rw-p 00000000 00:00 0 
7f1beba6b000-7f1bebc2f000 r-xp 00000000 00:26 70436                      /usr/lib64/libc-2.23.so
7f1bebc2f000-7f1bebe2f000 ---p 001c4000 00:26 70436                      /usr/lib64/libc-2.23.so
7f1bebe2f000-7f1bebe33000 r--p 001c4000 00:26 70436                      /usr/lib64/libc-2.23.so
7f1bebe33000-7f1bebe35000 rw-p 001c8000 00:26 70436                      /usr/lib64/libc-2.23.so
7f1bebe35000-7f1bebe39000 rw-p 00000000 00:00 0 
7f1bebe39000-7f1bebf42000 r-xp 00000000 00:26 70444                      /usr/lib64/libm-2.23.so
7f1bebf42000-7f1bec141000 ---p 00109000 00:26 70444                      /usr/lib64/libm-2.23.so
7f1bec141000-7f1bec142000 r--p 00108000 00:26 70444                      /usr/lib64/libm-2.23.so
7f1bec142000-7f1bec143000 rw-p 00109000 00:26 70444                      /usr/lib64/libm-2.23.so
7f1bec143000-7f1bec14a000 r-xp 00000000 00:26 70440                      /usr/lib64/libcrypt-2.23.so
7f1bec14a000-7f1bec349000 ---p 00007000 00:26 70440                      /usr/lib64/libcrypt-2.23.so
7f1bec349000-7f1bec34a000 r--p 00006000 00:26 70440                      /usr/lib64/libcrypt-2.23.so
7f1bec34a000-7f1bec34b000 rw-p 00007000 00:26 70440                      /usr/lib64/libcrypt-2.23.so
7f1bec34b000-7f1bec379000 rw-p 00000000 00:00 0 
7f1bec379000-7f1bec37c000 r-xp 00000000 00:26 70442                      /usr/lib64/libdl-2.23.so
7f1bec37c000-7f1bec57b000 ---p 00003000 00:26 70442                      /usr/lib64/libdl-2.23.so
7f1bec57b000-7f1bec57c000 r--p 00002000 00:26 70442                      /usr/lib64/libdl-2.23.so
7f1bec57c000-7f1bec57d000 rw-p 00003000 00:26 70442                      /usr/lib64/libdl-2.23.so
7f1bec57d000-7f1bec594000 r-xp 00000000 00:26 70464                      /usr/lib64/libpthread-2.23.so
7f1bec594000-7f1bec793000 ---p 00017000 00:26 70464                      /usr/lib64/libpthread-2.23.so
7f1bec793000-7f1bec794000 r--p 00016000 00:26 70464                      /usr/lib64/libpthread-2.23.so
7f1bec794000-7f1bec795000 rw-p 00017000 00:26 70464                      /usr/lib64/libpthread-2.23.so
7f1bec795000-7f1bec799000 rw-p 00000000 00:00 0 
7f1bec799000-7f1beca0d000 r-xp 00000000 00:26 83576                      /usr/lib64/libruby.so.2.3.0
7f1beca0d000-7f1becc0c000 ---p 00274000 00:26 83576                      /usr/lib64/libruby.so.2.3.0
7f1becc0c000-7f1becc12000 r--p 00273000 00:26 83576                      /usr/lib64/libruby.so.2.3.0
7f1becc12000-7f1becc15000 rw-p 00279000 00:26 83576                      /usr/lib64/libruby.so.2.3.0
7f1becc15000-7f1becc26000 rw-p 00000000 00:00 0 
7f1becc26000-7f1becc4a000 r-xp 00000000 00:26 70429                      /usr/lib64/ld-2.23.so
7f1becceb000-7f1becd19000 r--s 00000000 00:26 84359                      /usr/lib64/gems/ruby/therubyracer-0.11.0/v8/init.so
7f1becd19000-7f1becd3c000 r--s 00000000 00:26 70464                      /usr/lib64/libpthread-2.23.so
7f1becd3c000-7f1becd3e000 r--s 00000000 00:26 84020                      /usr/bin/ruby-mri
7f1becd3e000-7f1bece44000 rw-p 00000000 00:00 0 
7f1bece44000-7f1bece45000 ---p 00000000 00:00 0 
7f1bece45000-7f1bece48000 rw-p 00000000 00:00 0                          [stack:6402]
7f1bece48000-7f1bece49000 rw-p 00000000 00:00 0 
7f1bece49000-7f1bece4a000 r--p 00023000 00:26 70429                      /usr/lib64/ld-2.23.so
7f1bece4a000-7f1bece4b000 rw-p 00024000 00:26 70429                      /usr/lib64/ld-2.23.so
7f1bece4b000-7f1bece4c000 rw-p 00000000 00:00 0 
7ffcc5928000-7ffcc6127000 rw-p 00000000 00:00 0 
7ffcc615a000-7ffcc615c000 r--p 00000000 00:00 0                          [vvar]
7ffcc615c000-7ffcc615e000 r-xp 00000000 00:00 0                          [vdso]
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0                  [vsyscall]
[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

Comment 1 Dominic Cleal 2016-04-28 16:02:35 UTC
Sorry, I notice now that this isn't just therubyracer - the standard 'd8' command shipped in v8 simply segfaults on F24 too.

Version-Release number of selected component (if applicable):
v8-3.14.5.10-23.fc24.x86_64

Additional info:
# gdb d8
GNU gdb (GDB) Fedora 7.11-66.fc24
[..]
(gdb) run
Starting program: /usr/bin/d8 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".

Program received signal SIGSEGV, Segmentation fault.
v8::internal::PagedSpace::AdvanceSweeper (this=this@entry=0xa06590, bytes_to_sweep=bytes_to_sweep@entry=64) at src/spaces.cc:2316
2316	    if (ShouldBeSweptLazily(p)) {
(gdb) bt
#0  v8::internal::PagedSpace::AdvanceSweeper (this=this@entry=0xa06590, bytes_to_sweep=bytes_to_sweep@entry=64) at src/spaces.cc:2316
#1  0x00000000005ef173 in v8::internal::PagedSpace::SlowAllocateRaw (this=0xa06590, size_in_bytes=64) at src/spaces.cc:2360
#2  0x0000000000495bb3 in v8::internal::PagedSpace::AllocateRaw (size_in_bytes=64, this=0xa06590) at src/spaces-inl.h:284
#3  v8::internal::Heap::AllocateRawMap (this=0x9dbc90, this@entry=0x0) at src/heap-inl.h:271
#4  v8::internal::Heap::AllocatePartialMap (this=this@entry=0x9dbc90, instance_type=instance_type@entry=v8::internal::MAP_TYPE, instance_size=instance_size@entry=64)
    at src/heap.cc:2064
#5  0x0000000000499ed6 in v8::internal::Heap::CreateInitialMaps (this=this@entry=0x9dbc90) at src/heap.cc:2192
#6  0x00000000004a2dd2 in v8::internal::Heap::SetUp (this=this@entry=0x9dbc90, create_heap_objects=create_heap_objects@entry=true) at src/heap.cc:6233
#7  0x000000000050556e in v8::internal::Isolate::Init (this=0x9dbc80, des=0x0) at src/isolate.cc:1898
#8  0x0000000000607f61 in v8::Locker::Locker (this=0x7fffffffe3f0, isolate=<optimized out>) at src/v8threads.cc:66
#9  0x0000000000687758 in v8::Shell::Initialize () at src/d8.cc:1229
#10 0x000000000068932d in v8::Shell::Main (argc=1, argv=0x7fffffffe578) at src/d8.cc:1845
#11 0x00007ffff6d1d721 in __libc_start_main (main=0x405510 <main(int, char**)>, argc=1, argv=0x7fffffffe578, init=<optimized out>, fini=<optimized out>, 
    rtld_fini=<optimized out>, stack_end=0x7fffffffe568) at ../csu/libc-start.c:289
#12 0x0000000000405629 in _start ()
(gdb) p p
$1 = (v8::internal::Page *) 0x0

The backtrace using therubyracer is pretty much the same.

Thread 1 "ruby-mri" received signal SIGSEGV, Segmentation fault.
v8::internal::PagedSpace::AdvanceSweeper (this=this@entry=0x555555c3d540, bytes_to_sweep=bytes_to_sweep@entry=64) at src/spaces.cc:2316
2316	    if (ShouldBeSweptLazily(p)) {
(gdb) bt
#0  v8::internal::PagedSpace::AdvanceSweeper (this=this@entry=0x555555c3d540, bytes_to_sweep=bytes_to_sweep@entry=64) at src/spaces.cc:2316
#1  0x00007ffff5b6d353 in v8::internal::PagedSpace::SlowAllocateRaw (this=0x555555c3d540, size_in_bytes=64) at src/spaces.cc:2360
#2  0x00007ffff5a13803 in v8::internal::PagedSpace::AllocateRaw (size_in_bytes=64, this=0x555555c3d540) at src/spaces-inl.h:284
#3  v8::internal::Heap::AllocateRawMap (this=0x555555ba7360, this@entry=0x0) at src/heap-inl.h:271
#4  v8::internal::Heap::AllocatePartialMap (this=this@entry=0x555555ba7360, instance_type=instance_type@entry=v8::internal::MAP_TYPE, 
    instance_size=instance_size@entry=64) at src/heap.cc:2064
#5  0x00007ffff5a17b26 in v8::internal::Heap::CreateInitialMaps (this=this@entry=0x555555ba7360) at src/heap.cc:2192
#6  0x00007ffff5a20a22 in v8::internal::Heap::SetUp (this=this@entry=0x555555ba7360, create_heap_objects=create_heap_objects@entry=true) at src/heap.cc:6233
#7  0x00007ffff5a831be in v8::internal::Isolate::Init (this=0x555555ba7350, des=0x0) at src/isolate.cc:1898
#8  0x00007ffff5b86141 in v8::Locker::Locker (this=0x7fffffffd180, isolate=<optimized out>) at src/v8threads.cc:66
#9  0x00007ffff5f5b9db in rr::Locker::setupLockAndCall(int*, unsigned long) () from /usr/lib64/gems/ruby/therubyracer-0.11.0/v8/init.so
#10 0x00007ffff5f5baa7 in rr::Locker::doLock(int, unsigned long*, unsigned long) () from /usr/lib64/gems/ruby/therubyracer-0.11.0/v8/init.so
#11 0x00007ffff7acf150 in vm_call_cfunc () from /lib64/libruby.so.2.3
#12 0x00007ffff7adda23 in vm_call_method_each_type () from /lib64/libruby.so.2.3
#13 0x00007ffff7adea63 in vm_call_general () from /lib64/libruby.so.2.3
#14 0x00007ffff7ad2f17 in vm_exec_core () from /lib64/libruby.so.2.3
#15 0x00007ffff7ad83df in vm_exec () from /lib64/libruby.so.2.3
[...]

Comment 2 Vít Ondruch 2016-06-02 12:10:38 UTC
Created attachment 1164037 [details]
Fix SEGSEGV with GCC6

This seems to fix the segfault for me. The patch is based on

https://github.com/nodejs/node/issues/6272

Specifically this commit:

https://github.com/targos/node/commit/86c9184ef1083a56f3e05839783634b10707f9ca

But it needs some header cleanup ... I leave it to anybody else ;)

Comment 3 Vít Ondruch 2016-06-02 12:11:03 UTC
This should be the scratch build, if it succeeds:

http://koji.fedoraproject.org/koji/taskinfo?taskID=14351676

Comment 4 Vít Ondruch 2016-06-02 12:46:50 UTC
Chm, trying to rebuild therubyracer with this version of v8, it core dumps, so this does not solve the problem entirely, although the d8 seems to work ...

Comment 5 Fedora Update System 2016-06-07 05:09:12 UTC
v8-3.14.5.10-24.fc24 has been submitted as an update to Fedora 24. https://bodhi.fedoraproject.org/updates/FEDORA-2016-67dcc8e9dd

Comment 6 Fedora Update System 2016-06-07 18:54:02 UTC
v8-3.14.5.10-24.fc24 has been pushed to the Fedora 24 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2016-67dcc8e9dd

Comment 7 Fedora Update System 2016-06-20 22:25:32 UTC
v8-3.14.5.10-24.fc24 has been pushed to the Fedora 24 stable repository. If problems still persist, please make note of it in this bug report.


Note You need to log in before you can comment on or make changes to this bug.