Susumu Yata
yata****@razil*****
2015年 10月 16日 (金) 14:32:08 JST
対応が遅くなってすみません. 矢田です. > おかげで(これと関係しそうな)問題を見つけられました。 > > 森さん、Int64がキーなTABLE_PAT_KEYで壊れたデータになってしま > うケースの再現スクリプトを作ったので見てもらえないでしょうか? > (Int64なのは関係なさそうな気はしますが。。。) > > https://github.com/groonga/groonga/issues/415 こちらの問題について,デバッグが完了いたしました. 問題の起きる条件(の一つ)は,テーブルが空の状態から, 最終ビットのみが異なるキーを二つ追加し, それから片方のみを削除するというものでした. 原因は削除の処理にありました. TABLE_PAT_KEY が内部に持つ木構造において, ルート直下のノードは扱いが特殊になることが 考慮されていなかったために問題が起きていました. 以下のコミットにより,上記問題を解決しました. 従来のテストおよび須藤さんの紹介してくれた 再現コマンドについて問題がないことを確認しています. https://github.com/groonga/groonga/commit/06e344848baa0a6a411c4b189188092f6c5e9297 -- Susumu Yata <yata****@razil*****>