readdb: error if there's no wal in etcd

This commit is contained in:
Simone Gotti 2019-07-18 13:43:28 +02:00
parent 3f64bda0cc
commit 3a963ef95f
2 changed files with 6 additions and 16 deletions

View File

@ -351,15 +351,10 @@ func (r *ReadDB) SyncRDB(ctx context.Context) error {
r.log.Debugf("firstAvailableWalData: %s", util.Dump(firstAvailableWalData)) r.log.Debugf("firstAvailableWalData: %s", util.Dump(firstAvailableWalData))
r.log.Debugf("revision: %d", revision) r.log.Debugf("revision: %d", revision)
if firstAvailableWalData == nil { if firstAvailableWalData == nil {
if curWalSeq != "" { return errors.Errorf("no wal data in etcd")
// this happens if etcd has been reset
return errors.Errorf("our curwalseq is %q but there's no wal data on etcd", curWalSeq)
}
} }
if firstAvailableWalData != nil { if curWalSeq < firstAvailableWalData.WalSequence {
if curWalSeq < firstAvailableWalData.WalSequence { return errors.Errorf("current applied wal seq %q is smaller than the first available wal in etcd %q", curWalSeq, firstAvailableWalData.WalSequence)
return errors.Errorf("current applied wal seq %q is smaller than the first available wal on etcd %q", curWalSeq, firstAvailableWalData.WalSequence)
}
} }
r.log.Infof("syncing from wals") r.log.Infof("syncing from wals")

View File

@ -591,15 +591,10 @@ func (r *ReadDB) SyncObjectStorage(ctx context.Context) error {
r.log.Debugf("firstAvailableWalData: %s", util.Dump(firstAvailableWalData)) r.log.Debugf("firstAvailableWalData: %s", util.Dump(firstAvailableWalData))
r.log.Debugf("revision: %d", revision) r.log.Debugf("revision: %d", revision)
if firstAvailableWalData == nil { if firstAvailableWalData == nil {
if curWalSeq != "" { return errors.Errorf("no wal data in etcd")
// this happens if etcd has been reset
return errors.Errorf("our curwalseq is %q but there's no wal data on etcd", curWalSeq)
}
} }
if firstAvailableWalData != nil { if curWalSeq < firstAvailableWalData.WalSequence {
if curWalSeq < firstAvailableWalData.WalSequence { return errors.Errorf("current applied wal seq %q is smaller than the first available wal in etcd %q", curWalSeq, firstAvailableWalData.WalSequence)
return errors.Errorf("current applied wal seq %q is smaller than the first available wal on etcd %q", curWalSeq, firstAvailableWalData.WalSequence)
}
} }
r.log.Infof("syncing from wals") r.log.Infof("syncing from wals")