Skip to content

Commit a4ca8ff

Browse files
authored
fix: don't hang forever getting pg version (#5614)
1 parent 888766c commit a4ca8ff

File tree

1 file changed

+13
-7
lines changed

1 file changed

+13
-7
lines changed

cli/server.go

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -532,6 +532,15 @@ func Server(vip *viper.Viper, newAPI func(context.Context, *coderd.Options) (*co
532532
return xerrors.Errorf("dial postgres: %w", err)
533533
}
534534
defer sqlDB.Close()
535+
536+
pingCtx, pingCancel := context.WithTimeout(ctx, 15*time.Second)
537+
defer pingCancel()
538+
539+
err = sqlDB.PingContext(pingCtx)
540+
if err != nil {
541+
return xerrors.Errorf("ping postgres: %w", err)
542+
}
543+
535544
// Ensure the PostgreSQL version is >=13.0.0!
536545
version, err := sqlDB.QueryContext(ctx, "SHOW server_version;")
537546
if err != nil {
@@ -552,10 +561,6 @@ func Server(vip *viper.Viper, newAPI func(context.Context, *coderd.Options) (*co
552561
}
553562
logger.Debug(ctx, "connected to postgresql", slog.F("version", versionStr))
554563

555-
err = sqlDB.Ping()
556-
if err != nil {
557-
return xerrors.Errorf("ping postgres: %w", err)
558-
}
559564
err = migrations.Up(sqlDB)
560565
if err != nil {
561566
return xerrors.Errorf("migrate up: %w", err)
@@ -793,9 +798,10 @@ func Server(vip *viper.Viper, newAPI func(context.Context, *coderd.Options) (*co
793798
}()
794799

795800
hasFirstUser, err := client.HasFirstUser(ctx)
796-
if !hasFirstUser && err == nil {
797-
cmd.Println()
798-
cmd.Println("Get started by creating the first user (in a new terminal):")
801+
if err != nil {
802+
cmd.Println("\nFailed to check for the first user: " + err.Error())
803+
} else if !hasFirstUser {
804+
cmd.Println("\nGet started by creating the first user (in a new terminal):")
799805
cmd.Println(cliui.Styles.Code.Render("coder login " + accessURLParsed.String()))
800806
}
801807

0 commit comments

Comments
 (0)