rowland / fb

Firebird Extension Library for Ruby
64 stars 36 forks source link

Segfaulting on database connection #38

Closed AnthonyDeSimone closed 9 years ago

AnthonyDeSimone commented 9 years ago

I'm running fb (0.7.4) with Ruby 2.0.0-p576 (x64) on a Windows 8 machine. When I attempt to connect to a database, Ruby sefgaults with no obviously useful information.

mariuz commented 9 years ago

do you have the fbclient.dll in the path ?

http://stackoverflow.com/a/16697499/66242

Also could you create a backtrace

AnthonyDeSimone commented 9 years ago

Sorry for the delay. I haven't had access to this machine. fbclient.dll is in the path. Here is the backtrace:

irb(main):016:0> conn = db.connect (irb):16: [BUG] Segmentation fault ruby 2.1.3p242 (2014-09-19 revision 47630) [x64-mingw32]

-- Control frame information ----------------------------------------------- c:0019 p:---- s:0076 e:000075 CFUNC :connect c:0018 p:0007 s:0073 E:000e70 EVAL (irb):16 [FINISH] c:0017 p:---- s:0070 e:000069 CFUNC :eval c:0016 p:0024 s:0063 e:000062 METHOD C:/Ruby21-x64/lib/ruby/2.1.0/irb/workspace. rb:86 c:0015 p:0025 s:0056 e:000054 METHOD C:/Ruby21-x64/lib/ruby/2.1.0/irb/context.rb :380 c:0014 p:0022 s:0050 e:000049 BLOCK C:/Ruby21-x64/lib/ruby/2.1.0/irb.rb:492 c:0013 p:0040 s:0042 e:000041 METHOD C:/Ruby21-x64/lib/ruby/2.1.0/irb.rb:624 c:0012 p:0009 s:0037 e:000036 BLOCK C:/Ruby21-x64/lib/ruby/2.1.0/irb.rb:489 c:0011 p:0118 s:0033 e:000032 BLOCK C:/Ruby21-x64/lib/ruby/2.1.0/irb/ruby-lex.r b:247 [FINISH] c:0010 p:---- s:0030 e:000029 CFUNC :loop c:0009 p:0007 s:0027 e:000026 BLOCK C:/Ruby21-x64/lib/ruby/2.1.0/irb/ruby-lex.r b:233 [FINISH] c:0008 p:---- s:0025 e:000024 CFUNC :catch c:0007 p:0015 s:0021 e:000020 METHOD C:/Ruby21-x64/lib/ruby/2.1.0/irb/ruby-lex.r b:232 c:0006 p:0030 s:0018 E:0026c8 METHOD C:/Ruby21-x64/lib/ruby/2.1.0/irb.rb:488 c:0005 p:0008 s:0015 e:000014 BLOCK C:/Ruby21-x64/lib/ruby/2.1.0/irb.rb:397 [FI NISH] c:0004 p:---- s:0013 e:000012 CFUNC :catch c:0003 p:0143 s:0009 E:000948 METHOD C:/Ruby21-x64/lib/ruby/2.1.0/irb.rb:396 c:0002 p:0021 s:0004 E:0008b8 EVAL C:/Ruby21-x64/bin/irb:11 [FINISH] c:0001 p:0000 s:0002 E:002008 TOP [FINISH]

-- Ruby level backtrace information ---------------------------------------- C:/Ruby21-x64/bin/irb:11:in <main>' C:/Ruby21-x64/lib/ruby/2.1.0/irb.rb:396:instart' C:/Ruby21-x64/lib/ruby/2.1.0/irb.rb:396:in catch' C:/Ruby21-x64/lib/ruby/2.1.0/irb.rb:397:inblock in start' C:/Ruby21-x64/lib/ruby/2.1.0/irb.rb:488:in eval_input' C:/Ruby21-x64/lib/ruby/2.1.0/irb/ruby-lex.rb:232:ineach_top_level_statement' C:/Ruby21-x64/lib/ruby/2.1.0/irb/ruby-lex.rb:232:in catch' C:/Ruby21-x64/lib/ruby/2.1.0/irb/ruby-lex.rb:233:inblock in each_top_level_sta tement' C:/Ruby21-x64/lib/ruby/2.1.0/irb/ruby-lex.rb:233:in loop' C:/Ruby21-x64/lib/ruby/2.1.0/irb/ruby-lex.rb:247:inblock (2 levels) in each_to p_level_statement' C:/Ruby21-x64/lib/ruby/2.1.0/irb.rb:489:in block in eval_input' C:/Ruby21-x64/lib/ruby/2.1.0/irb.rb:624:insignal_status' C:/Ruby21-x64/lib/ruby/2.1.0/irb.rb:492:in block (2 levels) in eval_input' C:/Ruby21-x64/lib/ruby/2.1.0/irb/context.rb:380:inevaluate' C:/Ruby21-x64/lib/ruby/2.1.0/irb/workspace.rb:86:in evaluate' C:/Ruby21-x64/lib/ruby/2.1.0/irb/workspace.rb:86:ineval' (irb):16:in irb_binding' (irb):16:inconnect'

-- C level backtrace information ------------------------------------------- C:\Windows\SYSTEM32\ntdll.dll(ZwWaitForSingleObject+0xa) [0x000007FCC3C82C2A] C:\Windows\system32\KERNELBASE.dll(WaitForSingleObjectEx+0x9a) [0x000007FCC0DF10 EA] C:\Ruby21-x64\bin\x64-msvcrt-ruby210.dll(rb_vm_bugreport+0xa4) [0x000000006B4171 74] C:\Ruby21-x64\bin\x64-msvcrt-ruby210.dll(rb_name_err_mesg_new+0x841) [0x00000000 6B2C9851] C:\Ruby21-x64\bin\x64-msvcrt-ruby210.dll(rb_bug+0x45) [0x000000006B2CA595] C:\Ruby21-x64\bin\x64-msvcrt-ruby210.dll(rb_check_safe_str+0x351) [0x000000006B3 98D91] [0x0000000000401A85] C:\Windows\SYSTEM32\ntdll.dll(_C_specific_handler+0x8e) [0x000007FCC3C9AB96] C:\Windows\SYSTEM32\ntdll.dll(RtlLookupFunctionEntry+0x26d) [0x000007FCC3C99F4D]

C:\Windows\SYSTEM32\ntdll.dll(DbgPrint+0x484) [0x000007FCC3C9B220] C:\Windows\SYSTEM32\ntdll.dll(KiUserExceptionDispatcher+0x2e) [0x000007FCC3C84BB A] C:\Ruby21-x64\lib\ruby\gems\2.1.0\extensions\x64-mingw32\2.1.0\fb-0.7.4\fb.so(In it_fb+0xc20) [0x0000000066D88D20] [0x0000000066D83E43] C:\Ruby21-x64\bin\x64-msvcrt-ruby210.dll(rb_error_arity+0x1c6) [0x000000006B4021 F6] C:\Ruby21-x64\bin\x64-msvcrt-ruby210.dll(rb_f_send+0x5c1) [0x000000006B40CF91] C:\Ruby21-x64\bin\x64-msvcrt-ruby210.dll(rb_vm_localjump_error+0x1628) [0x000000 006B406A18] C:\Ruby21-x64\bin\x64-msvcrt-ruby210.dll(rb_vm_localjump_error+0x5a5d) [0x000000 006B40AE4D] C:\Ruby21-x64\bin\x64-msvcrt-ruby210.dll(rb_undef+0x847) [0x000000006B411C27] C:\Ruby21-x64\bin\x64-msvcrt-ruby210.dll(rb_f_eval+0x89) [0x000000006B4125D9] C:\Ruby21-x64\bin\x64-msvcrt-ruby210.dll(rb_error_arity+0x1c6) [0x000000006B4021 F6] C:\Ruby21-x64\bin\x64-msvcrt-ruby210.dll(rb_vm_localjump_error+0x1628) [0x000000 006B406A18] C:\Ruby21-x64\bin\x64-msvcrt-ruby210.dll(rb_vm_localjump_error+0x5a5d) [0x000000 006B40AE4D] C:\Ruby21-x64\bin\x64-msvcrt-ruby210.dll(rb_vm_get_insns_address_table+0x4f2) [0 x000000006B412C12] C:\Ruby21-x64\bin\x64-msvcrt-ruby210.dll(rb_rescue2+0xf5) [0x000000006B2D27C5] C:\Ruby21-x64\bin\x64-msvcrt-ruby210.dll(rb_f_notimplement+0x4b3) [0x000000006B4 003C3] C:\Ruby21-x64\bin\x64-msvcrt-ruby210.dll(rb_error_arity+0x1c6) [0x000000006B4021 F6] C:\Ruby21-x64\bin\x64-msvcrt-ruby210.dll(rb_f_send+0x5c1) [0x000000006B40CF91] C:\Ruby21-x64\bin\x64-msvcrt-ruby210.dll(rb_vm_localjump_error+0x1f71) [0x000000 006B407361] C:\Ruby21-x64\bin\x64-msvcrt-ruby210.dll(rb_vm_localjump_error+0x5a5d) [0x000000 006B40AE4D] C:\Ruby21-x64\bin\x64-msvcrt-ruby210.dll(rb_funcall+0x413) [0x000000006B40BF43] C:\Ruby21-x64\bin\x64-msvcrt-ruby210.dll(rb_vm_get_insns_address_table+0x6c) [0x 000000006B41278C] C:\Ruby21-x64\bin\x64-msvcrt-ruby210.dll(rb_vm_get_insns_address_table+0x16c) [0 x000000006B41288C] C:\Ruby21-x64\bin\x64-msvcrt-ruby210.dll(rb_vm_get_insns_address_table+0x209) [0 x000000006B412929] C:\Ruby21-x64\bin\x64-msvcrt-ruby210.dll(rb_error_arity+0x1c6) [0x000000006B4021 F6] C:\Ruby21-x64\bin\x64-msvcrt-ruby210.dll(rb_f_send+0x5c1) [0x000000006B40CF91] C:\Ruby21-x64\bin\x64-msvcrt-ruby210.dll(rb_vm_localjump_error+0x1f71) [0x000000 006B407361] C:\Ruby21-x64\bin\x64-msvcrt-ruby210.dll(rb_vm_localjump_error+0x5a5d) [0x000000 006B40AE4D] C:\Ruby21-x64\bin\x64-msvcrt-ruby210.dll(rb_funcall+0x413) [0x000000006B40BF43] C:\Ruby21-x64\bin\x64-msvcrt-ruby210.dll(rb_vm_get_insns_address_table+0x6c) [0x 000000006B41278C] C:\Ruby21-x64\bin\x64-msvcrt-ruby210.dll(rb_vm_get_insns_address_table+0x16c) [0 x000000006B41288C] C:\Ruby21-x64\bin\x64-msvcrt-ruby210.dll(rb_vm_get_insns_address_table+0x209) [0 x000000006B412929] C:\Ruby21-x64\bin\x64-msvcrt-ruby210.dll(rb_error_arity+0x1c6) [0x000000006B4021 F6] C:\Ruby21-x64\bin\x64-msvcrt-ruby210.dll(rb_f_send+0x5c1) [0x000000006B40CF91] C:\Ruby21-x64\bin\x64-msvcrt-ruby210.dll(rb_vm_localjump_error+0x1f71) [0x000000 006B407361] C:\Ruby21-x64\bin\x64-msvcrt-ruby210.dll(rb_vm_localjump_error+0x5a5d) [0x000000 006B40AE4D] C:\Ruby21-x64\bin\x64-msvcrt-ruby210.dll(rb_iseq_eval_main+0x1d0) [0x000000006B4 13C50] C:\Ruby21-x64\bin\x64-msvcrt-ruby210.dll(rb_check_copyable+0x304a) [0x000000006B 2CF36A] C:\Ruby21-x64\bin\x64-msvcrt-ruby210.dll(ruby_run_node+0x51) [0x000000006B2D2281 ] [0x0000000000402D14] [0x00000000004013D7] [0x00000000004014F8] C:\Windows\system32\KERNEL32.DLL(BaseThreadInitThunk+0x1a) [0x000007FCC1541842]

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

[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

This application has requested the Runtime to terminate it in an unusual way. Please contact the application's support team for more information.

mariuz commented 9 years ago

please use x64-64bit mingw ruby also firebird x64 , see the related issue

http://stackoverflow.com/a/31059903/66242

another option is to use firebird 32bit version , so you need to match mingw/ruby/firebird with the same bits (32/64)

mariuz commented 9 years ago

This can be closed as it seems to be a 32/64 bits lib missmatch

tested with both ruby/mingw/firebird all 32bit and then all 64bit

rowland commented 9 years ago

Thanks