From 7f3aab5ac283ecfc7029b680d4c0a34920e728c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Erik=20Pedersen?= Date: Thu, 15 Aug 2019 10:56:49 +0200 Subject: [PATCH] hugolib: Recover and log panics in content init See #6210 --- hugolib/page__per_output.go | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/hugolib/page__per_output.go b/hugolib/page__per_output.go index aa0fcd488..70bb3b223 100644 --- a/hugolib/page__per_output.go +++ b/hugolib/page__per_output.go @@ -18,6 +18,7 @@ import ( "context" "fmt" "html/template" + "runtime/debug" "strings" "sync" "unicode/utf8" @@ -65,8 +66,15 @@ func newPageContentOutput(p *pageState) func(f output.Format) (*pageContentOutpu f: f, } - initContent := func() error { - var err error + initContent := func() (err error) { + defer func() { + // See https://github.com/gohugoio/hugo/issues/6210 + if r := recover(); r != nil { + err = fmt.Errorf("%s", r) + p.s.Log.ERROR.Println("[BUG] Got panic:\n", string(debug.Stack())) + } + }() + var hasVariants bool cp.contentPlaceholders, hasVariants, err = p.shortcodeState.renderShortcodesForPage(p, f)