@@ -102,7 +102,7 @@ func main() {
102102 }
103103 captureSession := capturesession .NewCaptureSession (eventStream )
104104
105- // Optional S2 durable storage sink.
105+ // Optional S2 storage sink.
106106 var storageWriter * events.StorageWriter
107107 if config .S2Basin != "" && config .S2AccessToken != "" && config .S2Stream != "" {
108108 slogger .Info ("S2 storage enabled" , "basin" , config .S2Basin , "stream" , config .S2Stream )
@@ -261,7 +261,9 @@ func main() {
261261 if storageWriter != nil {
262262 go func () {
263263 defer close (storageDone )
264- storageWriter .Run (ctx ) //nolint:errcheck
264+ if err := storageWriter .Run (ctx ); err != nil && ctx .Err () == nil {
265+ slogger .Error ("storage writer failed" , "err" , err )
266+ }
265267 }()
266268 } else {
267269 close (storageDone )
@@ -271,9 +273,6 @@ func main() {
271273 <- ctx .Done ()
272274 slogger .Info ("shutdown signal received" )
273275
274- // Step 1: shut down all HTTP servers and stop all event publishers (cdpmonitor,
275- // captureSession) before draining the ring. This bounds the set of events that
276- // can arrive after Run exits so Drain sees a stable tail.
277276 shutdownCtx , shutdownCancel := context .WithTimeout (context .Background (), 10 * time .Second )
278277 defer shutdownCancel ()
279278 g , _ := errgroup .WithContext (shutdownCtx )
@@ -296,16 +295,15 @@ func main() {
296295 slogger .Error ("server failed to shutdown" , "err" , err )
297296 }
298297
299- // Step 2: wait for Run to return (it exits on ctx cancellation), then drain any
300- // events that arrived between the last Read and HTTP shutdown, then flush S2.
298+ // wait for Run to return, then drain any events that arrived and flush S2.
301299 <- storageDone
302300 if storageWriter != nil {
303301 drainCtx , drainCancel := context .WithTimeout (context .Background (), 5 * time .Second )
304302 defer drainCancel ()
305303 if err := storageWriter .Drain (drainCtx ); err != nil {
306304 slogger .Warn ("storage writer drain incomplete" , "err" , err )
307305 }
308- if err := storageWriter .Close (); err != nil {
306+ if err := storageWriter .Close (drainCtx ); err != nil {
309307 slogger .Error ("storage writer close failed" , "err" , err )
310308 }
311309 }
0 commit comments