須藤です。 これ、最近原因を調べている(けどまだわかっていない)問題な気 がします。 >>> 現状、同じ更新をすれば、必ず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> >>> >>> こうなるまでを再現できなければ、難しいようであれば再作成してしまいます。 >>> >>> 以上、よろしくお願いします。 >>> >>>