an app.bsky.* indexer

tweak some error handling

Changed files
+12 -6
cmd
monarch
+12 -6
cmd/monarch/main.go
··· 70 70 sched := parallel.NewScheduler(1, 50, "firehose", rsc.EventHandler) 71 71 72 72 if err := events.HandleRepoStream(ctx, app.wsconn, sched, nil); err != nil { 73 - return fmt.Errorf("error starting repo stream handler: %w", err) 73 + slog.Info("exiting repo stream handler", "err", err) 74 74 } 75 75 76 76 return nil ··· 83 83 return fmt.Errorf("error getting raw DB: %w", err) 84 84 } 85 85 if err := raw.Close(); err != nil { 86 - return fmt.Errorf("error closing DB: %w", err) 86 + return fmt.Errorf("DB close failed: %w", err) 87 87 } 88 88 return nil 89 89 } 90 90 91 - app.backfill.Stop(ctx) 91 + if err := app.backfill.Stop(ctx); err != nil { 92 + slog.Error("error stopping backfiller", "err", err) 93 + } 92 94 93 - closeDatabase(app.state) 94 - closeDatabase(app.content) 95 + if err := closeDatabase(app.state); err != nil { 96 + slog.Error("error closing DB", "err", err) 97 + } 98 + if err := closeDatabase(app.content); err != nil { 99 + slog.Error("error closing DB", "err", err) 100 + } 95 101 96 102 return nil 97 103 } ··· 108 114 <-ctx.Done() 109 115 slog.Info("shutting down") 110 116 111 - endctx, cancel := context.WithTimeout(context.TODO(), time.Second*15) 117 + endctx, cancel := context.WithTimeout(context.TODO(), time.Minute) 112 118 defer cancel() 113 119 114 120 if err := app.Stop(endctx); err != nil {