村上です。 残念ながら後者ですね。 後者のデータを可能な限り、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>