shithub: hugo

Download patch

ref: 58c446f56282cb8c24f5dce0ef03e5e7bebe00ef
parent: 5c7234015d15ca860f3c40dac112d1c3b38346f4
author: Bjørn Erik Pedersen <[email protected]>
date: Sat Nov 21 15:03:18 EST 2015

Fix recently introduced new data race in the shortcode handling

Fixes #1599

--- a/hugolib/shortcode.go
+++ b/hugolib/shortcode.go
@@ -343,9 +343,14 @@
 			if tmpl == nil {
 				return sc, fmt.Errorf("Unable to locate template for shortcode '%s' in page %s", sc.name, p.BaseFileName())
 			}
+
+			// TODO(bep) Refactor/rename this lock strategy
+			isInnerShortcodeCache.Lock()
 			if tmpl.Tree == nil {
+				isInnerShortcodeCache.Unlock()
 				return sc, fmt.Errorf("Template for shortcode '%s' failed to compile for page '%s'", sc.name, p.BaseFileName())
 			}
+			isInnerShortcodeCache.Unlock()
 			isInner = isInnerShortcode(tmpl)
 
 		case tScParam: