Use of log.Fatal causes upstream application to exit
The use of log.Fatal causes the upstream application to exit.
https://github.com/zitadel/oidc/blob/c3c1bd3a404fed7d21a536eadc5e3e375b056fc2/pkg/http/http.go#L95-L112
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
Can you be specific about which log.Fatal use is bugging you?
@muhlemmer my bad I posted the missing permalink in the original message
As far as I can tell, StartServer is only used for CLI applications. We use the global http.DefaultServeMux
If in a CLI StartServer fails, would you still want to resume normal execution? Sounds unlikely to me. If that is important for you, we are open for a PR which handles the error more gracefully. If you do so, make sure to create a new function and don't touch the old one to prevent breaking changes as per semver.
We use it for a desktop application built with https://github.com/wailsapp/wails. In the random chance that the IdP timesout an error will be raised and the login server log a fatal error that executes os.Exit(). If it were to panic we'd have captured it with recover. (We also use it for our CLI app, but like you said don't notice it although if we were building a TUI with Bubbletea we'd probably experience it.
Sounds good. I'll work on a PR this week.
Heya @jrschumacher it's been a while! Where are you at with this?
Hey @jrschumacher
We haven't gotten any feedback from you on the PR, so we're going to close the ticket. We'll reopen should things change