From: "luislavena (Luis Lavena)" Date: 2012-04-16T22:34:07+09:00 Subject: [ruby-core:44390] [ruby-trunk - Bug #6303][Assigned] dln_load and rb_w32_check_imported cause segfault in Ruby 1.9.3 for some extension Issue #6303 has been updated by luislavena (Luis Lavena). Category set to core Status changed from Closed to Assigned Assignee set to nobu (Nobuyoshi Nakada) Target version set to 1.9.3 % Done changed from 100 to 80 ruby -v set to 1.9.3 ---------------------------------------- Bug #6303: dln_load and rb_w32_check_imported cause segfault in Ruby 1.9.3 for some extension https://bugs.ruby-lang.org/issues/6303#change-25936 Author: luislavena (Luis Lavena) Status: Assigned Priority: Normal Assignee: nobu (Nobuyoshi Nakada) Category: core Target version: 1.9.3 ruby -v: 1.9.3 Hello, NOTE: Reporting this here since bugs.ruby-lang.org seems to be down. Recently a user reported to RubyInstaller project issues when loading a Ruby 1.9.2 compiled extension under Ruby 1.9.3: https://groups.google.com/d/msg/rubyinstaller/aSezE2LwfQs/TDZvPG3X5mUJ Which I was able to study a bit better: https://groups.google.com/d/msg/rubyinstaller/aSezE2LwfQs/UGKlButpNfMJ To add more, my last comment was: "Is worth to mention that this do not fail against 1.9.2 (either building or running) but dln_load mechanism on Ruby 1.9.2 differs from Ruby 1.9.3 and highly unlikely is going to change." I'm not convinced by my last comment and I do believe this is a bug. db2cli.dll links to MSVCR80 and even so, it loads properly under 1.9.2. Looking closely to what rb_w32_check_imported does, it is supposed to verify that the extension being loaded it is indeed using the right ruby dll. But is failing to obtain Name from pii (PIMAGE_IMPORT_BY_NAME struct) I can't find any reference to dbghelp (which provides ImageDirectoryEntryToData) being included or linked in msvcrt-libruby191.dll For sure I'm missing something, specially why is failing to obtain this extension information when works for others. Thank you. -- Luis Lavena AREA 17 - Perfection in design is achieved not when there is nothing more to add, but rather when there is nothing more to take away. Antoine de Saint-Exup��ry -- http://bugs.ruby-lang.org/