[groonga-dev,03516] Re: Mroonga で data truncated for primary key column: <id> が発生する

Back to archive index

Kouhei Sutou kou****@clear*****
2015年 9月 25日 (金) 22:30:09 JST


須藤です。

In <20150****@domai*****>
  "[groonga-dev,03515] Mroonga で data truncated for primary key column: <id> が発生する" on Fri, 25 Sep 2015 19:39:31 +0900,
  各務 洋 <kagam****@outwa*****> wrote:

> 再現性は確立していないのですが、Mroonga のテーブルに UPDATE 文発行時に 
> warning で data truncated for primary key column: <id> が発生します。

報告ありがとうございます!

> 環境は
> CentOS 6.5 x64
> groonga-libs.x86_64             5.0.7-1.el6
> mysql-community-mroonga.x86_64  5.06-1.el6
> mysql-community-server.x86_64   5.6.26-2.el6
> になります。
> 
> id は int8 の AUTO_INCREMENT の PRIMARY KEY です。
> 
> UPDATE tbl_test_pat_0005 SET t_text = uuid() WHERE t_text ='' ORDER BY id LIMIT 1;
> ですので、id は変更しません。

情報ありがとうございます!
手元でも試してみたいので、実際のテーブル定義を教えてもらうこ
とはできないでしょうか!?

> そこで、ご相談なのですが。
> 
> 1.上記の発生理由はなにか当たりがつきますでしょうか?
> (mysqld のkill 等、検証環境で色々試していました)

すみません。
どういう状況になっているかわからないとわからないです。。。

> 2.前回教えていただきました、
> grndb check /var/lib/mysql/db_test2.mrn
> を行ってみたところ、終了ステータスが 0 でした。
> DB名は「db_test2」なのですが、使い方はこれで正しいでしょうか?

はい、正しいです。

> 正しいのであれば、上記の現象は検知できないものなのでしょうか?
> (実はこちらの確認が目的で色々していました)

どういう状況になっているかわかっていないのですが、検知できな
いと思います。

grndb checkは「ロックが残留しているかどうか」を壊れているか
どうかの判断に使っています。ロックが残留していると「中途半端
な状態でクラッシュした」はずなのでデータベース内に不整合
(極端な例だと"Hello"のうち"Hel"までしか書き込まれていないと
か)がある可能性が高い、という判断です。

今回のケースはそういう理由ではないような気がするので検知でき
ないと思います。

Groonga的には「データベースに指示されたものをちゃんと書いた
よ!」となっていて、MroongaからGroongaへの指示が間違っている
んじゃないかと思います。



-- 
須藤 功平 <kou****@clear*****>
株式会社クリアコード <http://www.clear-code.com/>

Groongaベースの全文検索システムを総合サポート:
  http://groonga.org/ja/support/
パッチ採用 - プログラミングが楽しい人向けの採用プロセス:
  http://www.clear-code.com/recruitment/
コードリーダー育成支援 - 自然とリーダブルコードを書くチームへ:
  http://www.clear-code.com/services/code-reader/




groonga-dev メーリングリストの案内
Back to archive index