From c960b6db83f551bb2f044baaf70cd0f505efc7e5 Mon Sep 17 00:00:00 2001 From: bel Date: Sun, 1 Dec 2019 14:22:17 -0700 Subject: [PATCH] Open leveldb in recover on failure --- leveldb.go | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/leveldb.go b/leveldb.go index 18f26c0..875d54d 100755 --- a/leveldb.go +++ b/leveldb.go @@ -18,6 +18,16 @@ func NewLevelDB(path string) (*LevelDB, error) { db, err := leveldb.OpenFile(path, &opt.Options{ Filter: filter.NewBloomFilter(32), }) + if err != nil { + db, err = leveldb.RecoverFile(path, &opt.Options{ + Filter: filter.NewBloomFilter(32), + }) + if err == nil && db.Close() == nil { + db, err = leveldb.OpenFile(path, &opt.Options{ + Filter: filter.NewBloomFilter(32), + }) + } + } return &LevelDB{ db: db, }, err