[前][次][番号順一覧][スレッド一覧]

mysql:3652

From: "MINOHATA Norio" <"MINOHATA Norio" <minohata@xxxxxxxxxx>>
Date: Tue, 22 May 2001 17:55:17 +0900
Subject: [mysql 03652] Re: 浮動小数がデタラメな数値に化けて出力されるバグ

> 具体的な再現手順は、提示できますか?
> # 表形式、データ、アクセス方法

さっそく作ってみました。
http://www.ipc.co.jp/tmp/freebsd_mysql_float_bug/test/
に再現用のスクリプトを3つ置いています。
perl5のスクリプトで、DBIモジュールでmysqlにアクセスします。
http://www.ipc.co.jp/tmp/freebsd_mysql_float_bug/test.tgz
からまとめてダウンロードしてください。

[再現手順]
スクリプトは無保証です。
というか少なくとも私のFreeBSD環境では有害です。
実行した結果の責任は負いません。(念の為)
各スクリプトの変数を環境に合わせて適宜変更してから実行してください。

(1)準備
make_table.plを実行します。
# testデータベースにdummyというテーブルを作って、
# その中にダミーレコードを10万件作成します。

(2)MySQLが落ちることの確認
check_table.plを数プロセス同時実行してください。
> ./check_table.pl &
> ./check_table.pl &
...
私の環境では、(2)で2,3プロセス走らせるとすぐにMySQLが
落ちてしまいますので、数値化けのテスト用のスクリプトを
別途用意しました。(3)へ

(3)数値が化けることの確認
check_table_slow.plを2プロセスほどバックグランドで
実行させている状態で、
   select * from test.dummy into outfile '/tmp/test1.txt';
   select * from test.dummy into outfile '/tmp/test2.txt';
してから、
   diff test1.txt test2.txt
で差分を取ると一致しない行がいくつか出てきます。
# check_table_slow.pl は1秒ごとにSELECTを実行しますので、
# select ... into outfile が1秒以内で終わるような環境だと
# 「一致しない」異常は発生しないかもしれません。

以上のような感じで、とりあえずウチの、
・FreeBSD4.1 or 4.2
・MySQL3.23.37 or 38
・ configure --prefix=/usr/local/mysql --with-charset=ujis
な環境では異常が発生します。


--
箕畑典男
minohata@xxxxxxxxxx

[前][次][番号順一覧][スレッド一覧]

      3636 2001-05-17 11:05 ["MINOHATA Norio" <mi] 浮動小数がデタラメな数値に化けて出力されるバグ
      3646 2001-05-21 20:45 ┗["MINOHATA Norio" <mi]                                       
      3650 2001-05-22 15:21  ┣[Akihiko Shinohara <s]                                     
->    3652 2001-05-22 17:55  ┃┗["MINOHATA Norio" <mi]                                   
      3654 2001-05-23 03:11  ┗[tateyan <tateyan@xxx]                                     
      3658 2001-05-23 11:10   ┗[Yasuhide OMORI / 大]