this repo has no description

fix consumer disconnect

Changed files
+11 -3
bus
firehose
+11 -3
bus/firehose/server.go
··· 113 113 u.RawQuery = fmt.Sprintf("cursor=%d", *cursor) 114 114 } 115 115 116 - // run the consumer in a goroutine and 117 116 shutdownConsumer := make(chan struct{}, 1) 118 117 consumerShutdown := make(chan struct{}, 1) 119 - 118 + consumerErr := make(chan error, 1) 120 119 go func() { 121 120 logger := kf.logger.With("component", "consumer") 122 121 ··· 141 140 go func() { 142 141 if err := events.HandleRepoStream(ctx, conn, scheduler, logger); err != nil { 143 142 logger.Error("error handling repo stream", "err", err) 143 + consumerErr <- err 144 + return 144 145 } 146 + consumerErr <- nil 145 147 }() 146 148 147 - <-shutdownConsumer 149 + select { 150 + case <-shutdownConsumer: 151 + case err := <-consumerErr: 152 + if err != nil { 153 + logger.Error("consumer encountered an error", "err", err) 154 + } 155 + } 148 156 149 157 if err := conn.Close(); err != nil { 150 158 logger.Error("error closing websocket", "err", err)