Skip to content

Commit

Permalink
less panics
Browse files Browse the repository at this point in the history
  • Loading branch information
majst01 committed Jun 10, 2024
1 parent 6b02faf commit 9760fb6
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 5 deletions.
9 changes: 5 additions & 4 deletions cmd/internal/initializer/initializer.go
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ func New(log *slog.Logger, addr string, db database.Database, bp providers.Backu
}

// Start starts the initializer, which includes a server component and the initializer itself, which is potentially restoring a backup
func (i *Initializer) Start(ctx context.Context) {
func (i *Initializer) Start(ctx context.Context) error {
opts := []grpc.ServerOption{
grpc.StreamInterceptor(grpc_middleware.ChainStreamServer(
grpc_ctxtags.StreamServerInterceptor(),
Expand Down Expand Up @@ -92,7 +92,7 @@ func (i *Initializer) Start(ctx context.Context) {
lis, err := net.Listen("tcp", i.addr)
if err != nil {
i.log.Error("failed to listen", "error", err)
panic(err)
return err
}

go func() {
Expand All @@ -111,20 +111,21 @@ func (i *Initializer) Start(ctx context.Context) {
err = i.initialize(ctx)
if err != nil {
i.log.Error("error initializing database, shutting down", "error", err)
panic(err)
return err
}

i.currentStatus.Status = v1.StatusResponse_UPGRADING
i.currentStatus.Message = "start upgrading database"
err = i.db.Upgrade(ctx)
if err != nil {
i.log.Error("upgrade database failed", "error", err)
panic(err)
return err
}

i.log.Info("initializer done")
i.currentStatus.Status = v1.StatusResponse_DONE
i.currentStatus.Message = "done"
return nil
}

func (i *Initializer) initialize(ctx context.Context) error {
Expand Down
4 changes: 3 additions & 1 deletion cmd/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -150,7 +150,9 @@ var startCmd = &cobra.Command{
metrics := metrics.New()
metrics.Start(logger.WithGroup("metrics"))

initializer.New(logger.WithGroup("initializer"), addr, db, bp, comp, metrics, viper.GetString(databaseDatadirFlg)).Start(stop)
if err := initializer.New(logger.WithGroup("initializer"), addr, db, bp, comp, metrics, viper.GetString(databaseDatadirFlg)).Start(stop); err != nil {
return err
}

if err := probe.Start(stop, logger.WithGroup("probe"), db); err != nil {
return err
Expand Down

0 comments on commit 9760fb6

Please sign in to comment.