Issue #7492 has been updated by Heesob Park.

File dl2.patch added

I uploaded the patch for the trunk.

----------------------------------------
Bug #7492: Segmentation fault at DL::TestDL#test_call_double on x64 Windows8
https://bugs.ruby-lang.org/issues/7492#change-45830

* Author: Heesob Park
* Status: Feedback
* Priority: Normal
* Assignee: Aaron Patterson
* Category: ext
* Target version: current: 2.2.0
* ruby -v: ruby 2.0.0dev (2012-12-02 trunk 38132) [x64-mswin64_110]
* Backport: 
----------------------------------------
I can see the following segmentation fault with trunk build with x64 VC 2012 on Windows 8.
	
C:\work\snapshot-ms64>nmake test-all TESTS="dl/test_dl2.rb"

Microsoft(R) Program Maintenance Utility  11.00.50727.1
Copyright (c) Microsoft Corporation. All rights reserved.

        CC = cl -nologo
        LD = cl -nologo
        LDSHARED = cl -nologo -LD
        CFLAGS = -MD -Zi -W2 -wd4996 -we4028 -we4142 -O2sy-  -Zm600
        XCFLAGS = -DRUBY_EXPORT -I. -I.ext/include/x64-mswin64_110 -I./include -I. -I./missing
        CPPFLAGS =
        DLDFLAGS = -incremental:no -debug -opt:ref -opt:icf -dll
        SOLIBS =
        .\ruby.exe -I./lib -I".ext/x64-mswin64_110" -I. "./tool/runruby.rb"--extout=".ext"  -- --disable-gems "./test/runner.rb" --ruby=".\ruby.exe -I./lib -I".ext/x64-mswin64_110" -I. "./tool/runruby.rb" --extout=".ext"  -- --disable-gems"  dl/test_dl2.rb
Run options: "--ruby=.\\ruby.exe -I./lib -I.ext/x64-mswin64_110 -I. ./tool/runruby.rb --extout=.ext -- --disable-gems"

# Running tests:

[ 2/18] DL::TestDL#test_call_doubleC:/work/snapshot-ms64/test/dl/test_dl2.rb:89:
 [BUG] Segmentation fault
ruby 2.0.0dev (2012-12-02 trunk 38132) [x64-mswin64_110]

-- Control frame information -----------------------------------------------
c:0023 p:---- s:0106 e:000105 CFUNC  :call
c:0022 p:0051 s:0102 e:000101 METHOD C:/work/snapshot-ms64/test/dl/test_dl2.rb:89
c:0021 p:0041 s:0097 e:000096 METHOD C:/work/snapshot-ms64/lib/test/unit.rb:852
c:0020 p:0074 s:0092 e:000091 METHOD C:/work/snapshot-ms64/lib/minitest/unit.rb:1301
c:0019 p:0021 s:0084 e:000083 METHOD C:/work/snapshot-ms64/lib/test/unit/testcase.rb:17
c:0018 p:0077 s:0080 e:000079 BLOCK  C:/work/snapshot-ms64/lib/minitest/unit.rb:919 [FINISH]
c:0017 p:---- s:0074 e:000073 CFUNC  :map
c:0016 p:0103 s:0071 e:000070 METHOD C:/work/snapshot-ms64/lib/minitest/unit.rb:912
c:0015 p:0018 s:0063 e:000061 BLOCK  C:/work/snapshot-ms64/lib/test/unit.rb:651
[FINISH]
c:0014 p:---- s:0058 e:000057 CFUNC  :each
c:0013 p:0074 s:0055 e:000054 METHOD C:/work/snapshot-ms64/lib/test/unit.rb:649
c:0012 p:0147 s:0049 e:000048 METHOD C:/work/snapshot-ms64/lib/minitest/unit.rb:867
c:0011 p:0009 s:0039 e:000038 METHOD C:/work/snapshot-ms64/lib/minitest/unit.rb:1060
c:0010 p:0010 s:0036 e:000035 BLOCK  C:/work/snapshot-ms64/lib/minitest/unit.rb:1047 [FINISH]
c:0009 p:---- s:0033 e:000032 CFUNC  :each
c:0008 p:0042 s:0030 e:000029 METHOD C:/work/snapshot-ms64/lib/minitest/unit.rb:1046
c:0007 p:0019 s:0026 e:000025 METHOD C:/work/snapshot-ms64/lib/minitest/unit.rb:1035
c:0006 p:0021 s:0022 e:000021 METHOD C:/work/snapshot-ms64/lib/test/unit.rb:21
c:0005 p:0011 s:0018 e:000017 METHOD C:/work/snapshot-ms64/lib/test/unit.rb:768
c:0004 p:0040 s:0013 e:000012 METHOD C:/work/snapshot-ms64/lib/test/unit.rb:828
c:0003 p:0012 s:0010 e:000009 METHOD C:/work/snapshot-ms64/lib/test/unit.rb:832
c:0002 p:0180 s:0006 e:000440 EVAL   ./test/runner.rb:17 [FINISH]
c:0001 p:0000 s:0002 e:002198 TOP    [FINISH]

./test/runner.rb:17:in `<main>'
C:/work/snapshot-ms64/lib/test/unit.rb:832:in `run'
C:/work/snapshot-ms64/lib/test/unit.rb:828:in `run'
C:/work/snapshot-ms64/lib/test/unit.rb:768:in `run'
C:/work/snapshot-ms64/lib/test/unit.rb:21:in `run'
C:/work/snapshot-ms64/lib/minitest/unit.rb:1035:in `run'
C:/work/snapshot-ms64/lib/minitest/unit.rb:1046:in `_run'
C:/work/snapshot-ms64/lib/minitest/unit.rb:1046:in `each'
C:/work/snapshot-ms64/lib/minitest/unit.rb:1047:in `block in _run'
C:/work/snapshot-ms64/lib/minitest/unit.rb:1060:in `run_tests'
C:/work/snapshot-ms64/lib/minitest/unit.rb:867:in `_run_anything'
C:/work/snapshot-ms64/lib/test/unit.rb:649:in `_run_suites'
C:/work/snapshot-ms64/lib/test/unit.rb:649:in `each'
C:/work/snapshot-ms64/lib/test/unit.rb:651:in `block in _run_suites'
C:/work/snapshot-ms64/lib/minitest/unit.rb:912:in `_run_suite'
C:/work/snapshot-ms64/lib/minitest/unit.rb:912:in `map'
C:/work/snapshot-ms64/lib/minitest/unit.rb:919:in `block in _run_suite'
C:/work/snapshot-ms64/lib/test/unit/testcase.rb:17:in `run'
C:/work/snapshot-ms64/lib/minitest/unit.rb:1301:in `run'
C:/work/snapshot-ms64/lib/test/unit.rb:852:in `run_test'
C:/work/snapshot-ms64/test/dl/test_dl2.rb:89:in `test_call_double'
C:/work/snapshot-ms64/test/dl/test_dl2.rb:89:in `call'

-- C level backtrace information -------------------------------------------
C:\WINDOWS\SYSTEM32\ntdll.dll(NtWaitForSingleObject+0xa) [0x000007FB32122C2A]
C:\WINDOWS\system32\KERNELBASE.dll(WaitForSingleObjectEx+0x9a) [0x000007FB2F4210EA]
C:\work\snapshot-ms64\x64-msvcr110-ruby200.dll(rb_vm_bugreport+0x98) [0x000007FB18AE334C] c:\work\snapshot-ms64\vm_dump.c:668
C:\work\snapshot-ms64\x64-msvcr110-ruby200.dll(report_bug+0x112) [0x000007FB18A43CA2] c:\work\snapshot-ms64\error.c:308
C:\work\snapshot-ms64\x64-msvcr110-ruby200.dll(rb_bug+0x49) [0x000007FB18A42725] c:\work\snapshot-ms64\error.c:329
C:\work\snapshot-ms64\x64-msvcr110-ruby200.dll(sigsegv+0x48) [0x000007FB18A8FD8C] c:\work\snapshot-ms64\signal.c:629
C:\WINDOWS\SYSTEM32\MSVCR110.dll(XcptFilter+0x1a9) [0x000007FB2517F2B5]
C:\work\snapshot-ms64\ruby.exe(__tmainCRTStartup$filt$0+0x16) [0x000007F6870516D6] f:\dd\vctools\crt_bld\self_64_amd64\crt\src\crtexe.c:553
C:\WINDOWS\SYSTEM32\MSVCR110.dll(_C_specific_handler+0x93) [0x000007FB2517E66F]
C:\WINDOWS\SYSTEM32\ntdll.dll(RtlLookupFunctionEntry+0x26d) [0x000007FB3214464D]
C:\WINDOWS\SYSTEM32\ntdll.dll(DbgPrint+0x47c) [0x000007FB3214567C]
C:\WINDOWS\SYSTEM32\ntdll.dll(KiUserExceptionDispatcher+0x2e) [0x000007FB32124BBA]
C:\WINDOWS\SYSTEM32\MSVCR110.dll(atof_l+0x63) [0x000007FB2514DF87]
C:\work\snapshot-ms64\.ext\x64-mswin64_110\dl.so(rb_dlcfunc_call+0x20b) [0x000007FB26F714C7] c:\work\snapshot-ms64\ext\dl\cfunc.c:476
C:\work\snapshot-ms64\x64-msvcr110-ruby200.dll(vm_call_cfunc_with_frame+0x12d) [0x000007FB18A38C59] c:\work\snapshot-ms64\vm_insnhelper.c:1464
C:\work\snapshot-ms64\x64-msvcr110-ruby200.dll(vm_call_method+0x386) [0x000007FB18A393F2] c:\work\snapshot-ms64\vm_insnhelper.c:1715
C:\work\snapshot-ms64\x64-msvcr110-ruby200.dll(vm_exec_core+0x1317) [0x000007FB18A3B9EF] c:\work\snapshot-ms64\insns.def:1010
C:\work\snapshot-ms64\x64-msvcr110-ruby200.dll(vm_exec+0xac) [0x000007FB18A3A0E4] c:\work\snapshot-ms64\vm.c:1157
C:\work\snapshot-ms64\x64-msvcr110-ruby200.dll(invoke_block_from_c+0x1b5) [0x000007FB18A329F1] c:\work\snapshot-ms64\vm.c:627
C:\work\snapshot-ms64\x64-msvcr110-ruby200.dll(rb_yield_0+0x57) [0x000007FB18A37533] c:\work\snapshot-ms64\vm_eval.c:869
C:\work\snapshot-ms64\x64-msvcr110-ruby200.dll(rb_yield+0x24) [0x000007FB18A374D4] c:\work\snapshot-ms64\vm_eval.c:880
C:\work\snapshot-ms64\x64-msvcr110-ruby200.dll(rb_ary_collect+0xad) [0x000007FB18A4909D] c:\work\snapshot-ms64\array.c:2538
C:\work\snapshot-ms64\x64-msvcr110-ruby200.dll(vm_call_cfunc_with_frame+0x12d) [0x000007FB18A38C59] c:\work\snapshot-ms64\vm_insnhelper.c:1464
C:\work\snapshot-ms64\x64-msvcr110-ruby200.dll(vm_call_method+0x386) [0x000007FB18A393F2] c:\work\snapshot-ms64\vm_insnhelper.c:1715
C:\work\snapshot-ms64\x64-msvcr110-ruby200.dll(vm_exec_core+0x1389) [0x000007FB18A3BA61] c:\work\snapshot-ms64\insns.def:995
C:\work\snapshot-ms64\x64-msvcr110-ruby200.dll(vm_exec+0xac) [0x000007FB18A3A0E4] c:\work\snapshot-ms64\vm.c:1157
C:\work\snapshot-ms64\x64-msvcr110-ruby200.dll(invoke_block_from_c+0x1b5) [0x000007FB18A329F1] c:\work\snapshot-ms64\vm.c:627
C:\work\snapshot-ms64\x64-msvcr110-ruby200.dll(rb_yield_0+0x57) [0x000007FB18A37533] c:\work\snapshot-ms64\vm_eval.c:869
C:\work\snapshot-ms64\x64-msvcr110-ruby200.dll(rb_yield+0x24) [0x000007FB18A374D4] c:\work\snapshot-ms64\vm_eval.c:880
C:\work\snapshot-ms64\x64-msvcr110-ruby200.dll(rb_ary_each+0xa4) [0x000007FB18A4A1DC] c:\work\snapshot-ms64\array.c:1677
C:\work\snapshot-ms64\x64-msvcr110-ruby200.dll(vm_call_cfunc_with_frame+0x12d) [0x000007FB18A38C59] c:\work\snapshot-ms64\vm_insnhelper.c:1464
C:\work\snapshot-ms64\x64-msvcr110-ruby200.dll(vm_call_method+0x386) [0x000007FB18A393F2] c:\work\snapshot-ms64\vm_insnhelper.c:1715
C:\work\snapshot-ms64\x64-msvcr110-ruby200.dll(vm_exec_core+0x1389) [0x000007FB18A3BA61] c:\work\snapshot-ms64\insns.def:995
C:\work\snapshot-ms64\x64-msvcr110-ruby200.dll(vm_exec+0xac) [0x000007FB18A3A0E4] c:\work\snapshot-ms64\vm.c:1157
C:\work\snapshot-ms64\x64-msvcr110-ruby200.dll(invoke_block_from_c+0x1b5) [0x000007FB18A329F1] c:\work\snapshot-ms64\vm.c:627
C:\work\snapshot-ms64\x64-msvcr110-ruby200.dll(rb_yield_0+0x57) [0x000007FB18A37533] c:\work\snapshot-ms64\vm_eval.c:869
C:\work\snapshot-ms64\x64-msvcr110-ruby200.dll(rb_yield+0x24) [0x000007FB18A374D4] c:\work\snapshot-ms64\vm_eval.c:880
C:\work\snapshot-ms64\x64-msvcr110-ruby200.dll(rb_ary_each+0xa4) [0x000007FB18A4A1DC] c:\work\snapshot-ms64\array.c:1677
C:\work\snapshot-ms64\x64-msvcr110-ruby200.dll(vm_call_cfunc_with_frame+0x12d) [0x000007FB18A38C59] c:\work\snapshot-ms64\vm_insnhelper.c:1464
C:\work\snapshot-ms64\x64-msvcr110-ruby200.dll(vm_call_method+0x386) [0x000007FB18A393F2] c:\work\snapshot-ms64\vm_insnhelper.c:1715
C:\work\snapshot-ms64\x64-msvcr110-ruby200.dll(vm_exec_core+0x1389) [0x000007FB18A3BA61] c:\work\snapshot-ms64\insns.def:995
C:\work\snapshot-ms64\x64-msvcr110-ruby200.dll(vm_exec+0xac) [0x000007FB18A3A0E4] c:\work\snapshot-ms64\vm.c:1157
C:\work\snapshot-ms64\x64-msvcr110-ruby200.dll(rb_iseq_eval_main+0x7c) [0x000007FB18A350FC] c:\work\snapshot-ms64\vm.c:1405
C:\work\snapshot-ms64\x64-msvcr110-ruby200.dll(ruby_exec_internal+0xb1) [0x000007FB189F6D69] c:\work\snapshot-ms64\eval.c:255
C:\work\snapshot-ms64\x64-msvcr110-ruby200.dll(ruby_exec_node+0x1d) [0x000007FB189F6DB9] c:\work\snapshot-ms64\eval.c:316
C:\work\snapshot-ms64\x64-msvcr110-ruby200.dll(ruby_run_node+0x30) [0x000007FB189F700C] c:\work\snapshot-ms64\eval.c:307
C:\work\snapshot-ms64\ruby.exe(main+0x40) [0x000007F687051040] c:\work\snapshot-ms64\main.c:38
C:\work\snapshot-ms64\ruby.exe(__tmainCRTStartup+0x10f) [0x000007F6870512A7] f:\dd\vctools\crt_bld\self_64_amd64\crt\src\crtexe.c:536
C:\WINDOWS\system32\KERNEL32.DLL(BaseThreadInitThunk+0x1a) [0x000007FB3009167E]

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

* Loaded script: ./test/runner.rb: DL::TestDL#test_call_double

* Loaded features:

    0 enumerator.so
    1 C:/work/snapshot-ms64/.ext/x64-mswin64_110/enc/encdb.so
    2 C:/work/snapshot-ms64/.ext/x64-mswin64_110/enc/cp949.so
    3 C:/work/snapshot-ms64/.ext/x64-mswin64_110/enc/trans/transdb.so
    4 C:/work/snapshot-ms64/rbconfig.rb
    5 C:/work/snapshot-ms64/lib/optparse.rb
    6 C:/work/snapshot-ms64/lib/thread.rb
    7 C:/work/snapshot-ms64/lib/minitest/parallel_each.rb
    8 C:/work/snapshot-ms64/lib/minitest/unit.rb
    9 C:/work/snapshot-ms64/lib/prettyprint.rb
   10 C:/work/snapshot-ms64/lib/pp.rb
   11 C:/work/snapshot-ms64/lib/test/unit/assertions.rb
   12 C:/work/snapshot-ms64/lib/test/unit/testcase.rb
   13 C:/work/snapshot-ms64/lib/test/unit.rb
   14 C:/work/snapshot-ms64/lib/open3.rb
   15 C:/work/snapshot-ms64/lib/timeout.rb
   16 C:/work/snapshot-ms64/.ext/x64-mswin64_110/enc/trans/korean.so
   17 C:/work/snapshot-ms64/test/ruby/envutil.rb
   18 C:/work/snapshot-ms64/.ext/x64-mswin64_110/dl.so
   19 C:/work/snapshot-ms64/.ext/common/dl.rb
   20 C:/work/snapshot-ms64/test/dl/test_base.rb
   21 C:/work/snapshot-ms64/.ext/common/dl/callback.rb
   22 C:/work/snapshot-ms64/.ext/common/dl/stack.rb
   23 C:/work/snapshot-ms64/.ext/common/dl/value.rb
   24 C:/work/snapshot-ms64/.ext/common/dl/func.rb
   25 C:/work/snapshot-ms64/.ext/common/dl/pack.rb
   26 C:/work/snapshot-ms64/test/dl/test_dl2.rb
   27 C:/work/snapshot-ms64/.ext/x64-mswin64_110/enc/utf_16le.so
   28 C:/work/snapshot-ms64/.ext/x64-mswin64_110/enc/trans/utf_16_32.so
   29 C:/work/snapshot-ms64/.ext/x64-mswin64_110/enc/trans/single_byte.so
   30 C:/work/snapshot-ms64/.ext/x64-mswin64_110/io/console.so

[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

NMAKE : fatal error U1077: '.\ruby.exe' : '0x3'  .
Stop.


---Files--------------------------------
dl2.patch (2.57 KB)


-- 
http://bugs.ruby-lang.org/