村上です。 自己レスばかりですいません。。 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> >> >> こうなるまでを再現できなければ、難しいようであれば再作成してしまいます。 >> >> 以上、よろしくお願いします。 >> >> -------------- next part -------------- HTMLの添付ファイルを保管しました... URL: <https://lists.osdn.me/mailman/archives/groonga-dev/attachments/20200518/ef9ed9b5/attachment.html>