[#48251] require 'dbi' の警告について — 稲葉伸之 <nobuyuki.inaba@...>

いなばともうします。

22 messages 2011/08/03
[#48260] Re: require 'dbi' の警告について — Fumiaki Sakamoto <ua6ta6@...> 2011/08/05

坂元と申します。

[#48261] Re: require 'dbi' の警告について — 稲葉伸之 <nobuyuki.inaba@...> 2011/08/05

いろいろありがとうございます。

[#48264] Re: require 'dbi' の警告について — "Y. Nobuoka" <nobuoka@...> 2011/08/05

信岡です。

[#48308] WinXPでnokogiインストール — AOKI Yoshihiro <aoki@...>

あおきと申します。

13 messages 2011/08/12

[#48330] 1.25を %10.1f で出力したときバージョンにより表示に違いがでるのは何故でしょうか。 — paptimusx <paptimusx@...>

1.25を %10.1f で出力したとき、表示に違いがでるのですが、何故でしょうか。

10 messages 2011/08/23
[#48332] Re: 1.25を %10.1f で出力したときバージョンにより表示に違いがでるのは何故でしょうか。 — paptimusx <paptimusx@...> 2011/08/23

2つポストしてしまったようですいません。

[ruby-list:48300] Re: require 'dbi' の警告について

From: "Y. Nobuoka" <nobuoka@...>
Date: 2011-08-09 21:38:13 UTC
List: ruby-list #48300
前川さん

信岡です。

私の方でろくに Windows 環境を作らずにごちゃごちゃ言っててもあれなので、
私の方でも windows に ruby-1.9.2-p290 をインストールしてみました。
結果としては、前川さんの環境と同じように segmentation fault が発生しました。
(毎回発生するわけでもないですし、どういう条件で発生するんでしょうね。。)

原因を調べましたが、先のメールで述べたような既知のバグ (?) である
「MySQL 5.1 で segmentation fault が発生する」 という問題ではないかと思います。
そこで、自前で MySQL/Ruby ライブラリのバージョン 2.8.2 を自前でビルドして
それを使ってみることにしました。
その結果、segmentation fault が発生しなくなりました (おそらく)。
(segmentation fault が起こるかどうか試すのに使用したプログラムを
メール末尾に付けておきます。)

私がビルドして gem パッケージにした mysql ライブラリを [1] においておきますので、
一度これを試してみてください。

[1] http://www.vividcode.info/project/ruby/mysql.html

> 何度も書くようですが、Ruby192p180では、アクセスは問題ないです。

確かに別のパッチレベルでは発生しないというのは謎ですね。


--- segmentation fault が起こるかどうか試すために実行したスクリプト ---
--- ( DB 構築は既に済ませているとする ) ---
 #! ruby -EUTF-8:UTF-8
 # coding: UTF-8

 require "dbi"

 1000.times do |i|
   $stdout << '.'
   $stdout << " #{i+1}\n" if ( i + 1 ) % 50 == 0
   begin
     dbh = DBI.connect( 'DBI:Mysql:mytest:localhost', 'xxxx', 'xxxx' )
     dbh.do( 'CREATE TABLE aplist ( ttt INTEGER )' )
     200.times do |a|
       dbh.do( "INSERT INTO aplist VALUES ( #{a} )" )
     end
     dbh.execute( 'SELECT * FROM aplist' ) do |res|
       while row = res.fetch do
         row
       end
     end
     dbh.do( 'DROP TABLE aplist' )
   ensure
     dbh.disconnect if dbh
   end
 end

-- 
信岡 ゆう (NOBUOKA Yu)

In This Thread