From 04fd8f4ab2981a708842151d6c71c92c698a879a Mon Sep 17 00:00:00 2001 From: Nikolay Petrov Date: Sun, 22 Feb 2026 09:06:21 -0500 Subject: [PATCH] check negative rollover; better handle errors --- index/format.go | 8 ++++++-- log.go | 2 +- typed_blocking.go | 2 +- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/index/format.go b/index/format.go index 5331deb..1c58a96 100644 --- a/index/format.go +++ b/index/format.go @@ -88,12 +88,16 @@ func (w *Writer) SyncAndClose() error { return w.Close() } -func Write(path string, opts Params, index []Item) error { +func Write(path string, opts Params, index []Item) (retErr error) { w, err := OpenWriter(path, opts) if err != nil { return err } - defer func() { _ = w.Close() }() // ignoring since its only applicable if an error has happened + defer func() { + if retErr != nil { + _ = w.Close() + } + }() for _, item := range index { if err := w.Write(item); err != nil { diff --git a/log.go b/log.go index 6a62580..284bd20 100644 --- a/log.go +++ b/log.go @@ -23,7 +23,7 @@ var errDeleteRelative = fmt.Errorf("%w: delete relative offsets", message.ErrInv // Open opens or creates a [Log] based on a dir and set of options func Open(dir string, opts Options) (result Log, err error) { - if opts.Rollover == 0 { + if opts.Rollover <= 0 { opts.Rollover = 1024 * 1024 } diff --git a/typed_blocking.go b/typed_blocking.go index 758429e..85314f2 100644 --- a/typed_blocking.go +++ b/typed_blocking.go @@ -47,7 +47,7 @@ func (l *tlogBlocking[K, V]) Publish(tmessages []TMessage[K, V]) (int64, error) } l.notify.Set(nextOffset) - return nextOffset, err + return nextOffset, nil } func (l *tlogBlocking[K, V]) ConsumeBlocking(ctx context.Context, offset int64, maxCount int64) (int64, []TMessage[K, V], error) {