diff options
Diffstat (limited to 'vendor/gitea.com/lunny/levelqueue/uniquequeue.go')
-rw-r--r-- | vendor/gitea.com/lunny/levelqueue/uniquequeue.go | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/vendor/gitea.com/lunny/levelqueue/uniquequeue.go b/vendor/gitea.com/lunny/levelqueue/uniquequeue.go index 8d2676b0d2..a53abb2c4e 100644 --- a/vendor/gitea.com/lunny/levelqueue/uniquequeue.go +++ b/vendor/gitea.com/lunny/levelqueue/uniquequeue.go @@ -8,6 +8,7 @@ import ( "fmt" "github.com/syndtr/goleveldb/leveldb" + "github.com/syndtr/goleveldb/leveldb/errors" ) const ( @@ -27,7 +28,13 @@ type UniqueQueue struct { func OpenUnique(dataDir string) (*UniqueQueue, error) { db, err := leveldb.OpenFile(dataDir, nil) if err != nil { - return nil, err + if !errors.IsCorrupted(err) { + return nil, err + } + db, err = leveldb.RecoverFile(dataDir, nil) + if err != nil { + return nil, err + } } return NewUniqueQueue(db, []byte{}, []byte(uniqueQueuePrefixStr), true) } |