Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use of log.Fatal causes upstream application to exit #710

Open
jrschumacher opened this issue Feb 12, 2025 · 2 comments
Open

Use of log.Fatal causes upstream application to exit #710

jrschumacher opened this issue Feb 12, 2025 · 2 comments

Comments

@jrschumacher
Copy link

jrschumacher commented Feb 12, 2025

The use of log.Fatal causes the upstream application to exit.

oidc/pkg/http/http.go

Lines 95 to 112 in c3c1bd3

func StartServer(ctx context.Context, port string) {
server := &http.Server{Addr: port}
go func() {
if err := server.ListenAndServe(); err != http.ErrServerClosed {
log.Fatalf("ListenAndServe(): %v", err)
}
}()
go func() {
<-ctx.Done()
ctxShutdown, cancelShutdown := context.WithTimeout(context.Background(), 5*time.Second)
defer cancelShutdown()
err := server.Shutdown(ctxShutdown)
if err != nil {
log.Fatalf("Shutdown(): %v", err)
}
}()
}

Is there a reason why we don't want to return an error and/or the shutdown function and expect developers to implement the go-routine to shutdown appropriately?

log.Fatal will kill the process even in goroutines https://go.dev/play/p/Hy6rKkePzJY

@muhlemmer
Copy link
Collaborator

Can you be specific about which log.Fatal use is bugging you?

@jrschumacher
Copy link
Author

@muhlemmer my bad I posted the missing permalink in the original message

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: No status
Development

No branches or pull requests

2 participants