From: Jeremy Bopp Date: 2010-10-05T10:48:24+09:00 Subject: Re: ODBC app in Ruby - I don't believe it. On 10/04/2010 04:29 PM, Ed Reed wrote: > My mistake on the gem commands. I did use the correct ones with dbd > instead of dbi. I copied the libmySQL.dll and the simple.rb script now > runs correctly. Thanks! I don't have much to say about the platform. The > client says it needs to run on Windows 7 so I do what I can to meet > their expectations. It's good you made it a little further but too bad your client got sold on the MS koolaid. > I tried another example from the same kitebird.com source. The xml.rb > script produces an error that seems to indicate a bug in the either ruby > or the extensions. I don't know if I'm still missing something or is > there really a problem that needs to be fixed. > > Here's the output from the command, > > C:\PROGRA~2\APACHE~1\Apache2.2\htdocs\dbi-scripts>xml.rb > lib/rational.rb is deprecated > C:/Ruby/lib/ruby/gems/1.9.1/gems/dbi-0.4.5/lib/dbi/handles.rb:12: > warning: optional boolean argument is obsoleted > C:/Ruby/lib/ruby/gems/1.9.1/gems/dbd-mysql-0.4.4/lib/dbd/mysql/statement.rb:130: > [BUG] Segmentation fault > ruby 1.9.2p0 (2010-08-18) [i386-mingw32] > > -- control frame ---------- > c:0011 p:---- s:0051 b:0051 l:000050 d:000050 CFUNC :fetch_fields > c:0010 p:0093 s:0048 b:0048 l:000047 d:000047 METHOD > C:/Ruby/lib/ruby/gems/1.9.1/gems/dbd-mysql-0.4.4/lib/dbd/mysql/statement.rb:130 > c:0009 p:0040 s:0040 b:0040 l:000034 d:000039 BLOCK > C:/Ruby/lib/ruby/gems/1.9.1/gems/dbd-mysql-0.4.4/lib/dbd/mysql/statement.rb:37 > c:0008 p:0019 s:0038 b:0038 l:000037 d:000037 METHOD > :10 > c:0007 p:0029 s:0035 b:0035 l:000034 d:000034 METHOD > C:/Ruby/lib/ruby/gems/1.9.1/gems/dbd-mysql-0.4.4/lib/dbd/mysql/statement.rb:34 > c:0006 p:0038 s:0030 b:0030 l:000029 d:000029 METHOD > C:/Ruby/lib/ruby/gems/1.9.1/gems/dbi-0.4.5/lib/dbi/base_classes/database.rb:96 > c:0005 p:0080 s:0024 b:0023 l:000022 d:000022 METHOD > C:/Ruby/lib/ruby/gems/1.9.1/gems/dbi-0.4.5/lib/dbi/handles/database.rb:81 > c:0004 p:0032 s:0017 b:0017 l:000016 d:000016 METHOD > C:/Ruby/lib/ruby/gems/1.9.1/gems/dbi-0.4.5/lib/dbi/handles/database.rb:128 > c:0003 p:0106 s:0010 b:0009 l:000714 d:000ca8 EVAL > C:/PROGRA~2/APACHE~1/Apache2.2/htdocs/dbi-scripts/xml.rb:24 > c:0002 p:---- s:0004 b:0004 l:000003 d:000003 FINISH > c:0001 p:0000 s:0002 b:0002 l:000714 d:000714 TOP > --------------------------- > -- Ruby level backtrace information > ---------------------------------------- > C:/PROGRA~2/APACHE~1/Apache2.2/htdocs/dbi-scripts/xml.rb:24:in `
' > C:/Ruby/lib/ruby/gems/1.9.1/gems/dbi-0.4.5/lib/dbi/handles/database.rb:128:in > `select_all' > C:/Ruby/lib/ruby/gems/1.9.1/gems/dbi-0.4.5/lib/dbi/handles/database.rb:81:in > `execute' > C:/Ruby/lib/ruby/gems/1.9.1/gems/dbi-0.4.5/lib/dbi/base_classes/database.rb:96:in > `execute' > C:/Ruby/lib/ruby/gems/1.9.1/gems/dbd-mysql-0.4.4/lib/dbd/mysql/statement.rb:34:in > `execute' > :10:in `synchronize' > C:/Ruby/lib/ruby/gems/1.9.1/gems/dbd-mysql-0.4.4/lib/dbd/mysql/statement.rb:37:in > `block in execute' > C:/Ruby/lib/ruby/gems/1.9.1/gems/dbd-mysql-0.4.4/lib/dbd/mysql/statement.rb:130:in > `column_info' > C:/Ruby/lib/ruby/gems/1.9.1/gems/dbd-mysql-0.4.4/lib/dbd/mysql/statement.rb:130:in > `fetch_fields' > > [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. My best guess on this is that the mysql gem was compiled against a different version of the libmysql.dll file. As a result, it may make a call somewhere that leads to a segfault. I think there might be a lead in the mysql gem documentation: http://rubydoc.info/gems/mysql/2.8.1/frames It mentions that there is a History.txt file available somewhere that has the major and version number for the MySQL client library used to build the mysql gem. I don't have my work system available right now to look for the file, but see if you can find it in your gem installation. -Jeremy