mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2024-12-20 20:07:03 +01:00
Ensure that template compilation panics are sent to the logs (#16788)
Although panics within the rendering pipeline are caught and dealt with, panics that occur before that starts are unprotected and will kill Gitea without being sent to the logs. This PR adds a basic recovery handler to catch panics that occur after the logger is initialised and ensure that they're sent to the logger. Signed-off-by: Andrew Thornton <art27@cantab.net>
This commit is contained in:
parent
94f529af02
commit
73defbbd1c
1 changed files with 5 additions and 0 deletions
|
@ -86,6 +86,11 @@ func runWeb(ctx *cli.Context) error {
|
||||||
_ = log.DelLogger("console")
|
_ = log.DelLogger("console")
|
||||||
log.NewLogger(0, "console", "console", fmt.Sprintf(`{"level": "fatal", "colorize": %t, "stacktraceLevel": "none"}`, log.CanColorStdout))
|
log.NewLogger(0, "console", "console", fmt.Sprintf(`{"level": "fatal", "colorize": %t, "stacktraceLevel": "none"}`, log.CanColorStdout))
|
||||||
}
|
}
|
||||||
|
defer func() {
|
||||||
|
if panicked := recover(); panicked != nil {
|
||||||
|
log.Fatal("PANIC: %v\n%s", panicked, string(log.Stack(2)))
|
||||||
|
}
|
||||||
|
}()
|
||||||
|
|
||||||
managerCtx, cancel := context.WithCancel(context.Background())
|
managerCtx, cancel := context.WithCancel(context.Background())
|
||||||
graceful.InitManager(managerCtx)
|
graceful.InitManager(managerCtx)
|
||||||
|
|
Loading…
Reference in a new issue