Skip to content

Commit 29b5098

Browse files
committed
Fix error handling on subscribe method
1 parent fe7eabf commit 29b5098

File tree

1 file changed

+4
-1
lines changed

1 file changed

+4
-1
lines changed

services/ingestion/event_subscriber.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,12 +122,15 @@ func (r *RPCEventSubscriber) Subscribe(ctx context.Context) <-chan models.BlockE
122122
// Subscribing to EVM specific events and handle any disconnection errors
123123
// as well as context cancellations.
124124
func (r *RPCEventSubscriber) subscribe(ctx context.Context, height uint64) <-chan models.BlockEvents {
125-
eventsChan := make(chan models.BlockEvents)
125+
// create the channel with a buffer size of 1,
126+
// to avoid blocking on the two error cases below
127+
eventsChan := make(chan models.BlockEvents, 1)
126128

127129
_, err := r.client.GetBlockHeaderByHeight(ctx, height)
128130
if err != nil {
129131
err = fmt.Errorf("failed to subscribe for events, the block height %d doesn't exist: %w", height, err)
130132
eventsChan <- models.NewBlockEventsError(err)
133+
close(eventsChan)
131134
return eventsChan
132135
}
133136

0 commit comments

Comments
 (0)