diff --git a/router/pkg/pubsub/redis/adapter.go b/router/pkg/pubsub/redis/adapter.go index 699670f1f7..7a1d9beac6 100644 --- a/router/pkg/pubsub/redis/adapter.go +++ b/router/pkg/pubsub/redis/adapter.go @@ -5,6 +5,7 @@ import ( "errors" "fmt" "sync" + "time" "github.com/wundergraph/cosmo/router/pkg/metric" @@ -100,10 +101,18 @@ func (p *ProviderAdapter) Subscribe(ctx context.Context, conf datasource.Subscri msgChan := sub.Channel() cleanup := func() { - err := sub.PUnsubscribe(ctx, subConf.Channels...) + unsubCtx, cancel := context.WithTimeout(context.Background(), 1*time.Second) + defer cancel() + + err := sub.PUnsubscribe(unsubCtx, subConf.Channels...) if err != nil { log.Error(fmt.Sprintf("error unsubscribing from redis for topics %v", subConf.Channels), zap.Error(err)) } + + err = sub.Close() + if err != nil { + log.Error(fmt.Sprintf("error closing connection to redis: %v", zap.Error(err))) + } } p.closeWg.Add(1)