Deprecate Blackfriday and fix a potential deadlock in config
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Mon, 26 Jul 2021 09:21:11 +0000 (11:21 +0200)
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Mon, 26 Jul 2021 14:28:16 +0000 (16:28 +0200)
Note that the deadlock has not been seen earlier, in tests on in real Hugo sites.

Fixes #8792
Fixes #8791

config/defaultConfigProvider.go
hugolib/config.go

index 05c3b9126aafe880889b59a4eedf9030be492b35..2391ec85310dfacfdc72ea9e762b4b3337bbb8c2 100644 (file)
@@ -89,6 +89,7 @@ func (c *defaultConfigProvider) Get(k string) interface{} {
        c.mu.RLock()
        key, m := c.getNestedKeyAndMap(strings.ToLower(k), false)
        if m == nil {
+               c.mu.RUnlock()
                return nil
        }
        v := m[key]
index 96114fad139823e07cc71e3c196b4b8ef3a2359f..5f07a4571d83a6ca907ece731e443ba75e44819f 100644 (file)
@@ -107,12 +107,18 @@ func LoadConfig(d ConfigSourceDescriptor, doWithConfig ...func(cfg config.Provid
                }
        }
 
+       // Config deprecations.
        // We made this a Glob pattern in Hugo 0.75, we don't need both.
        if l.cfg.GetBool("ignoreVendor") {
                helpers.Deprecated("--ignoreVendor", "--ignoreVendorPaths **", true)
                l.cfg.Set("ignoreVendorPaths", "**")
        }
 
+       if l.cfg.GetString("markup.defaultMarkdownHandler") == "blackfriday" {
+               helpers.Deprecated("markup.defaultMarkdownHandler=blackfriday", "See https://gohugo.io//content-management/formats/#list-of-content-formats", false)
+
+       }
+
        // Some settings are used before we're done collecting all settings,
        // so apply OS environment both before and after.
        if err := l.applyOsEnvOverrides(d.Environ); err != nil {