hugo

Unnamed repository; edit this file 'description' to name the repository.

git clone git://git.shimmy1996.com/hugo.git
commit 7f3aab5ac283ecfc7029b680d4c0a34920e728c8
parent 028b992611209b241b1f55def8d47f9188038dc3
Author: Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Date:   Thu, 15 Aug 2019 10:56:49 +0200

hugolib: Recover and log panics in content init

See #6210

Diffstat:
Mhugolib/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
@@ -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)