From da009b060d7a02c56175be38f6e557900e266dc3 Mon Sep 17 00:00:00 2001 From: ucwong Date: Sat, 4 Apr 2020 02:47:25 +0000 Subject: [PATCH] whisper/mailserver : recover db file when openfile corrupted --- whisper/mailserver/mailserver.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/whisper/mailserver/mailserver.go b/whisper/mailserver/mailserver.go index d7af4baae3..184afc52b0 100644 --- a/whisper/mailserver/mailserver.go +++ b/whisper/mailserver/mailserver.go @@ -70,6 +70,9 @@ func (s *WMailServer) Init(shh *whisper.Whisper, path string, password string, p } s.db, err = leveldb.OpenFile(path, &opt.Options{OpenFilesCacheCapacity: 32}) + if _, iscorrupted := err.(*errors.ErrCorrupted); iscorrupted { + db, err = leveldb.RecoverFile(path, nil) + } if err != nil { return fmt.Errorf("open DB file: %s", err) }