hugolib: Recover and log panics in content init

See #6210
This commit is contained in:
Bjørn Erik Pedersen 2019-08-15 10:56:49 +02:00
parent 028b992611
commit 7f3aab5ac2
No known key found for this signature in database
GPG key ID: 330E6E2BD4859D8F

View file

@ -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)