diff --git a/badger/count.go b/badger/count.go index a9d4dd0..ceef89e 100644 --- a/badger/count.go +++ b/badger/count.go @@ -3,6 +3,7 @@ package badger import ( "context" "encoding/binary" + "log" "github.com/dgraph-io/badger/v4" "github.com/nbd-wtf/go-nostr" @@ -43,19 +44,19 @@ func (b BadgerBackend) CountEvents(ctx context.Context, filter nostr.Filter) (in idx[0] = rawEventStorePrefix copy(idx[1:], key[idxOffset:]) - // fetch actual event - item, err := txn.Get(idx) - if err != nil { - if err == badger.ErrDiscardedTxn { - return err - } - - panic(err) - } - if extraFilter == nil { count++ } else { + // fetch actual event + item, err := txn.Get(idx) + if err != nil { + if err == badger.ErrDiscardedTxn { + return err + } + log.Printf("badger: count (%v) failed to get %d from raw event store: %s\n", q, idx, err) + return err + } + err = item.Value(func(val []byte) error { evt := &nostr.Event{} if err := nostr_binary.Unmarshal(val, evt); err != nil { @@ -70,7 +71,7 @@ func (b BadgerBackend) CountEvents(ctx context.Context, filter nostr.Filter) (in return nil }) if err != nil { - panic(err) + log.Printf("badger: count value read error: %s\n", err) } } } diff --git a/badger/query.go b/badger/query.go index 01c3cad..bc8e1f1 100644 --- a/badger/query.go +++ b/badger/query.go @@ -6,6 +6,7 @@ import ( "encoding/binary" "encoding/hex" "fmt" + "log" "github.com/dgraph-io/badger/v4" "github.com/nbd-wtf/go-nostr" @@ -70,7 +71,8 @@ func (b BadgerBackend) QueryEvents(ctx context.Context, filter nostr.Filter) (ch if err == badger.ErrDiscardedTxn { return } - panic(err) + log.Printf("badger: (%v) failed to get %d from raw event store: %s\n", q, idx, err) + return } err = item.Value(func(val []byte) error { evt := &nostr.Event{} @@ -86,7 +88,7 @@ func (b BadgerBackend) QueryEvents(ctx context.Context, filter nostr.Filter) (ch return nil }) if err != nil { - panic(err) + log.Printf("badger: value read error: %s\n", err) } } }(i, q) @@ -155,7 +157,7 @@ func (b BadgerBackend) QueryEvents(ctx context.Context, filter nostr.Filter) (ch return nil }) if err != nil { - panic(err) + log.Printf("badger: query txn error: %s\n", err) } }() diff --git a/lmdb/query.go b/lmdb/query.go index 8157971..aa60938 100644 --- a/lmdb/query.go +++ b/lmdb/query.go @@ -92,7 +92,7 @@ func (b *LMDBBackend) QueryEvents(ctx context.Context, filter nostr.Filter) (cha } evt := &nostr.Event{} - if err := nostr_binary.Unmarshal(val, evt); err != nil { + if err := nostr_binary.Unmarshal(val, evt); err == nil { panic(err) }