[groonga-dev,04806] Re: [ii][update][one] failed to decode / failed to merge chunk / failed to flush a bufferが出たときについて

Back to archive index
Naoya Murakami visio****@gmail*****
2020年 5月 19日 (火) 07:35:29 JST


村上です。

残念ながら後者ですね。

後者のデータを可能な限り、DBと更新クエリをコンパクト化し、
別途手段にて共有させていただきます。
少々時間がかかるかもしれません。

前者は複数のDBで同じ更新をずっと流してもあるDBでは起きて、
他のDBでは起きないということが結構あるので、再現がなかなか
難しそうなんですよね。

時間できたら検証環境作って、更新データをまとめて動的更新し
続けて再現できないか試してみます。


2020年5月19日(火) 6:49 Sutou Kouhei <kou****@clear*****>:

> 須藤です。
>
> これ、最近原因を調べている(けどまだわかっていない)問題な気
> がします。
>
> >>> 現状、同じ更新をすれば、必ずfailed to decodeになるデータベースは用意できますが、
> >>> 参考になりますかね。
>
> これは、次の2つのデータがあるということですか?
>
>   * 問題のない(エラーになる前の)DB
>   * ↑に入れるとこのエラーが出る更新データ
>
> であれば提供してもらえると助かります。
>
> それとも次のデータですか?
>
>   * エラーになった後のDB
>   * ↑に再度入れるとこのエラーが再発する更新データ
>
> こちらでも提供してもらえると少し助かります。
>
> エラーになった後のDBは入手できそうなのですが、再発用の更新デー
> タは入手できそうなので、1つデータが増えて助かります。
>
>
> In <CANM+****@mail*****>
>   "[groonga-dev,04804] Re: [ii][update][one] failed to decode / failed to
> merge chunk / failed to flush a bufferが出たときについて" on Mon, 18 May 2020
> 19:55:58 +0900,
>   Naoya Murakami <visio****@gmail*****> wrote:
>
> > 村上です。
> >
> > 自己レスばかりですいません。。
> >
> > term_idはmax_idで&を取る仕様みたいで実際は171ですのでbufferは問題なさそうでした。
> > 以下のgrn_p_dec()内のunpackで失敗しているみたいなのでやはりチャンクがおかしそうですね。
> >
> https://github.com/groonga/groonga/blob/6866ef08d386e63a7a26bae8fdaeb8f15a840ed9/lib/ii.c#L2237
> >
> > 壊し方を再現できたらまたご連絡いたします。
> >
> > 2020年5月18日(月) 19:13 Naoya Murakami <visio****@gmail*****>:
> >
> >> 村上です。
> >>
> >> buffer_data->term->tidが2147483819でなぜか2GiBちょいですね。
> >> 実際のこれのlexiconのkey数は126447481で"9"というキーのlexicon上の_idは
> >> 171になりますが、bufferが壊れているのですかね。
> >>
> >> > select vgram_terms --filter '_key == "9"' --output_columns _id,_key
> >>
> >>
> [[0,1589796398.446896,0.01889300346374512],[[[1],[["_id","UInt32"],["_key","ShortText"]],[171,"9"]]]]
> >>
> >> やはりbufferが壊れるまでを再現できないと難しそうですかね。
> >>
> >> 2020年5月18日(月) 18:12 Naoya Murakami <visio****@gmail*****>:
> >>
> >>> 村上です。
> >>>
> >>> failed to decode / failed to merge chunk / failed to flush a
> bufferが出た場合、
> >>> 静的索引構築でチャンクを作り直すとエラーがでないようになるのですが、
> >>> このエラーはチャンクが壊れていることによるものでしょうか。
> >>>
> >>> たまにマージができなくなってしまうときがあるのでチャンクの再作成を
> >>> しています。
> >>>
> >>> 現状、同じ更新をすれば、必ずfailed to decodeになるデータベースは用意できますが、
> >>> 参考になりますかね。
> >>>
> >>> 最近ようやくバージョンを上げたところで2年前ぐらいのGroongaのコードベースで
> >>> updateしたものも含まれると思います。
> >>>
> >>> [ii][chunk][merge] failed to decode: <vgram_terms.description7>:
> >>> <"9">(2147483819)
> >>> [ii][buffer][merge] failed to merge chunk: <vgram_terms.description7>:
> >>> <"9">(2147483819): chunk:<987>, n-chunks:<9886>
> >>> [ii][update][one] failed to flush a buffer: <vgram_terms.description7>:
> >>> <62108274>:<1>:<178>: term:<"96">, segment:<4917148>, free:<4>,
> >>> required:<16>: [ii][buffer][merge] failed to merge chunk:
> >>> <vgram_terms.description7>: <"9">(2147483819): chunk:<987>,
> n-chunks:<9886>
> >>>
> >>> こうなるまでを再現できなければ、難しいようであれば再作成してしまいます。
> >>>
> >>> 以上、よろしくお願いします。
> >>>
> >>>
>
> _______________________________________________
> groonga-dev mailing list
> groon****@lists*****
> https://lists.osdn.me/mailman/listinfo/groonga-dev
>
-------------- next part --------------
HTMLの添付ファイルを保管しました...
URL: <https://lists.osdn.me/mailman/archives/groonga-dev/attachments/20200519/d103b995/attachment-0001.html>


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