[groonga-dev,02534] groonga-normalizer-mysql 1.0.6のgrn_nfkc_char_typeでクラッシュ

Back to archive index

yoku ts. yoku0****@gmail*****
2014年 7月 29日 (火) 12:35:12 JST


こんにちは、yoku0825といいます。

groonga-normalizer-mysql 1.0.6で
mysql_unicode_ci_except_kana_ci_kana_with_voiced_sound_mark を使っていると、
まれにクラッシュすることがあります。

前にも(少なくとも1回以上)発生していたのですが、
なんとなく再現性がありそうなので知恵を貸していただきたく。

↓ここで落ちてました

Program terminated with signal 11, Segmentation fault.
#0  grn_nfkc_char_type (str=0x7f7a87ffcba6 <Address 0x7f7a87ffcba6 out of
bounds>) at nfkc.c:31
31      switch (str[0]) {

クエリーはこんなのです(サービス系のMroongaが吐いていたコアから
検索文字列を16進で吸い上げたので、変なconcatになってます。

SELECT * FROM t1 WHERE match(val) against (concat('*D+ ', 0xd6, 0xbc, 0xde,
0xac, 0xc9, 0x93, 0x27) IN BOOLEAN MODE)

全く別のマシンの全く違うテーブルで、
mysql_unicode_ci_except_kana_ci_kana_with_voiced_sound_markを使ってるインデックスに対して
同じ検索条件のクエリーを投げたところ、そっちもクラッシュしました。
 1) データには依存しない?

が、その後同じクエリーを再現が確認できた2台のMroongaに投げ込んでも、
それ以上のクラッシュは起こりませんでした。
 2) メモリー状態に依存する?


一応、スキーマとクエリーとデータとバックトレースを上げたのですが、
再現条件を絞り込むために他にできそうなことってないでしょうか。
(同じクエリーで毎回落ちてくれればいいのに。。と思いつつ)

https://gist.github.com/yoku0825/68fb018380c8d5e07590

よろしくお願いします。


yoku0825,



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