Bug 1331458

Summary: Segfault on d8 startup or via rubygem-therubyracer
Product: [Fedora] Fedora Reporter: Dominic Cleal <dominic>
Component: v8Assignee: Vít Ondruch <vondruch>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: high Docs Contact:
Priority: unspecified    
Version: 24CC: tcallawa, tchollingsworth, tomspur, vondruch
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: v8-3.14.5.10-24.fc24 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-06-20 22:25:40 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 1331480    
Bug Blocks:    
Attachments:
Description Flags
Fix SEGSEGV with GCC6 none

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.