aboutsummaryrefslogtreecommitdiff
path: root/weed/util/log_buffer/sealed_buffer.go
diff options
context:
space:
mode:
Diffstat (limited to 'weed/util/log_buffer/sealed_buffer.go')
-rw-r--r--weed/util/log_buffer/sealed_buffer.go12
1 files changed, 8 insertions, 4 deletions
diff --git a/weed/util/log_buffer/sealed_buffer.go b/weed/util/log_buffer/sealed_buffer.go
index 397dab1d4..109cb3862 100644
--- a/weed/util/log_buffer/sealed_buffer.go
+++ b/weed/util/log_buffer/sealed_buffer.go
@@ -51,16 +51,20 @@ func (sbs *SealedBuffers) SealBuffer(startTime, stopTime time.Time, buf []byte,
return oldMemBuffer.buf
}
-func (mb *MemBuffer) locateByTs(lastReadTime time.Time) (pos int) {
+func (mb *MemBuffer) locateByTs(lastReadTime time.Time) (pos int, err error) {
lastReadTs := lastReadTime.UnixNano()
for pos < len(mb.buf) {
- size, t := readTs(mb.buf, pos)
+ size, t, readErr := readTs(mb.buf, pos)
+ if readErr != nil {
+ // Return error if buffer is corrupted
+ return 0, fmt.Errorf("locateByTs: buffer corruption at pos %d: %w", pos, readErr)
+ }
if t > lastReadTs {
- return
+ return pos, nil
}
pos += size + 4
}
- return len(mb.buf)
+ return len(mb.buf), nil
}
func (mb *MemBuffer) String() string {