clientv3: Check the error return from Write in v3Manager#Status (#11837)

Signed-off-by: Ted Yu <yuzhihong@gmail.com>
This commit is contained in:
Zhihong Yu 2020-05-04 17:43:08 -07:00 committed by GitHub
parent df1d2ca78e
commit 17ed0c6638
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -183,18 +183,26 @@ func (s *v3Manager) Status(dbPath string) (ds Status, err error) {
if b == nil {
return fmt.Errorf("cannot get hash of bucket %s", string(next))
}
h.Write(next)
if _, err := h.Write(next); err != nil {
return fmt.Errorf("cannot write bucket %s : %v", string(next), err)
}
iskeyb := (string(next) == "key")
b.ForEach(func(k, v []byte) error {
h.Write(k)
h.Write(v)
if err := b.ForEach(func(k, v []byte) error {
if _, err := h.Write(k); err != nil {
return fmt.Errorf("cannot write to bucket %s", err.Error())
}
if _, err := h.Write(v); err != nil {
return fmt.Errorf("cannot write to bucket %s", err.Error())
}
if iskeyb {
rev := bytesToRev(k)
ds.Revision = rev.main
}
ds.TotalKey++
return nil
})
}); err != nil {
return fmt.Errorf("cannot write bucket %s : %v", string(next), err)
}
}
return nil
}); err != nil {