From: allen@... Date: 2016-05-05T20:41:26+00:00 Subject: [ruby-core:75376] [Ruby trunk Bug#12346] Ruby 2.3.0 64-bit (mingw64-32) WIN32OLE_TYPE.typelibs seg faults on Windows 10 64-bit Issue #12346 has been updated by Allen Hewes. It *could* be something with my registry but it works in Ruby 2.3.0 32-bit, Ruby 2.2.5 64-bit and Ruby 2.2 HEAD 64-bit. Ruby 2.2 HEAD 64-bit: ``` .\sandbox\devkit\mingw\bin\gdb.exe --args .\sandbox\ruby22_mingw\bin\ruby.exe -d -v -e "require 'win32ole'" -e "puts WIN32OLE_TYPE.typelibs.count" GNU gdb (rubenvb-4.7.2-release) 7.5.50.20120920-cvs Copyright (C) 2012 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x86_64-w64-mingw32". For bug reporting instructions, please see: ... Reading symbols from C:\Workspace\rubyinstaller.git\sandbox\ruby22_mingw\bin\ruby.exe...done. (gdb) run Starting program: C:\Workspace\rubyinstaller.git\sandbox\ruby22_mingw\bin\ruby.exe -d -v -e "require 'win32ole'" -e "puts WIN32OLE_TYPE.typelibs.count" [New Thread 15012.0x46e0] [New Thread 15012.0x52fc] [New Thread 15012.0x53b4] [New Thread 15012.0x4860] [New Thread 15012.0x5250] ruby 2.2.6p322 (2016-04-29 revision 54815) [x64-mingw32] Exception `LoadError' at C:/Workspace/rubyinstaller.git/sandbox/ruby22_mingw/lib/ruby/2.2.0/rubygems.rb:1222 - cannot load such file -- rubygems/defaults/operating_system Exception `LoadError' at C:/Workspace/rubyinstaller.git/sandbox/ruby22_mingw/lib/ruby/2.2.0/rubygems.rb:1231 - cannot load such file -- rubygems/defaults/ruby 574 [Inferior 1 (process 15012) exited normally] (gdb) ``` Ruby 2.2.5 64-bit: ``` .\sandbox\devkit\mingw\bin\gdb.exe --args .\sandbox\ruby22_mingw\bin\ruby.exe -d -v -e "require 'win32ole'" -e "puts WIN32OLE_TYPE.typelibs.count" GNU gdb (rubenvb-4.7.2-release) 7.5.50.20120920-cvs Copyright (C) 2012 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x86_64-w64-mingw32". For bug reporting instructions, please see: ... Reading symbols from C:\Workspace\rubyinstaller.git\sandbox\ruby22_mingw\bin\ruby.exe...done. (gdb) run Starting program: C:\Workspace\rubyinstaller.git\sandbox\ruby22_mingw\bin\ruby.exe -d -v -e "require 'win32ole'" -e "puts WIN32OLE_TYPE.typelibs.count" [New Thread 19564.0x598c] [New Thread 19564.0x5a80] [New Thread 19564.0x127c] [New Thread 19564.0x5934] [New Thread 19564.0x59a8] ruby 2.2.5p319 (2016-04-26 revision 54774) [x64-mingw32] Exception `LoadError' at C:/Workspace/rubyinstaller.git/sandbox/ruby22_mingw/lib/ruby/2.2.0/rubygems.rb:1222 - cannot load such file -- rubygems/defaults/operating_system Exception `LoadError' at C:/Workspace/rubyinstaller.git/sandbox/ruby22_mingw/lib/ruby/2.2.0/rubygems.rb:1231 - cannot load such file -- rubygems/defaults/ruby 574 [Inferior 1 (process 19564) exited normally] (gdb) ``` ---------------------------------------- Bug #12346: Ruby 2.3.0 64-bit (mingw64-32) WIN32OLE_TYPE.typelibs seg faults on Windows 10 64-bit https://bugs.ruby-lang.org/issues/12346#change-58502 * Author: Allen Hewes * Status: Feedback * Priority: Normal * Assignee: cruby-windows * ruby -v: ruby 2.3.0p0 (2015-12-25 revision 53290) [x64-mingw32] * Backport: 2.1: UNKNOWN, 2.2: UNKNOWN, 2.3: UNKNOWN ---------------------------------------- Ruby Windows binaries are from RubyInstaller.org. Seg fault also happens with Ruby 2.3.1 using the same 64-bit DevKit. in the test suite file test/win32ole/test_win32ole_type.rb, there is the test `test_s_typelibs`: ```ruby def test_s_typelibs tlibs = WIN32OLE_TYPE.typelibs.sort tlibs2 = WIN32OLE_TYPELIB.typelibs.collect{|t|t.name}.sort assert_equal(tlibs2, tlibs) end ``` Ruby 2.3.0 64-bit produces segmentation fault at both places: ```ruby tlibs = WIN32OLE_TYPE.typelibs.sort tlibs2 = WIN32OLE_TYPELIB.typelibs.collect{|t|t.name}.sort ``` very basic one line check for each test: ``` ruby.exe -e "require 'win32ole'" -e "puts WIN32OLE_TYPE.typelibs.count" ruby.exe -e "require 'win32ole'" -e "puts WIN32OLE_TYPELIB.typelibs.collect{|t|t.name}.count" ``` fails in: ruby-2.3.0-x64-mingw32 (see attachments) works in: ruby-2.3.0-i386-mingw32 (572) ruby-2.2.4-i386-mingw32 (572) ruby-2.2.4-x64-mingw32 (574) ruby-2.1.8-i386-mingw32 (572) ruby-2.1.8-x64-mingw32 (574) I've attached the crash outputs for both: ``` WIN32OLE_TYPE.typelibs.sort = ruby-2.3.0p0-test_s_typelibs-seg-fault.txt WIN32OLE_TYPELIB.typelibs.collect{|t|t.name}.sort = ruby-2.3.0p0-test_s_typelibs-collect-seg-fault.txt ``` ``` systeminfo | findstr /R /C:"^OS [Name|Version]" /C:"^Hotfix" /C:"KB" OS Name: Microsoft Windows 10 Pro OS Version: 10.0.10586 N/A Build 10586 Hotfix(s): 15 Hotfix(s) Installed. [01]: KB2693643 [02]: KB3105211 [03]: KB3116900 [04]: KB3120677 [05]: KB3122947 [06]: KB3124200 [07]: KB3124262 [08]: KB3124263 [09]: KB3135173 [10]: KB3139907 [11]: KB3140741 [12]: KB3140743 [13]: KB3140768 [14]: KB3154132 [15]: KB3147458 ---Files-------------------------------- ruby-2.3.0p0-test_s_typelibs-seg-fault.txt (14.6 KB) ruby-2.3.0p0-test_s_typelibs-collect-seg-fault.txt (13.9 KB) -- https://bugs.ruby-lang.org/ Unsubscribe: