diff options
author | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2022-02-10 17:12:02 +0100 |
---|---|---|
committer | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2022-02-10 19:43:47 +0100 |
commit | a2a660ed1209528b075a21af84fc0ed3e7b266ef (patch) | |
tree | 3765f5c5a5f46f518d7d806d20859e7b480fc905 /commands | |
parent | f7bc4cc505950df738ab11aa3c611f324dd6c158 (diff) |
commands: Fix server deadlock on config error
Fixes #9486
Diffstat (limited to 'commands')
-rw-r--r-- | commands/commandeer.go | 6 | ||||
-rw-r--r-- | commands/hugo.go | 2 |
2 files changed, 7 insertions, 1 deletions
diff --git a/commands/commandeer.go b/commands/commandeer.go index 7706360ab..304ef7a7c 100644 --- a/commands/commandeer.go +++ b/commands/commandeer.go @@ -61,6 +61,8 @@ type commandeer struct { logger loggers.Logger serverConfig *config.Server + buildLock func() (unlock func(), err error) + // Loading state mustHaveConfigFile bool failOnInitErr bool @@ -419,6 +421,10 @@ func (c *commandeer) loadConfig() error { err = createErr } c.hugoSites = h + // TODO(bep) improve. + if c.buildLock == nil { + c.buildLock = h.LockBuild + } close(c.created) }) diff --git a/commands/hugo.go b/commands/hugo.go index b954bf13c..7bfd1443a 100644 --- a/commands/hugo.go +++ b/commands/hugo.go @@ -869,7 +869,7 @@ func (c *commandeer) newWatcher(pollIntervalStr string, dirList ...string) (*wat for { select { case evs := <-watcher.Events: - unlock, err := c.hugo().BaseFs.LockBuild() + unlock, err := c.buildLock() if err != nil { c.logger.Errorln("Failed to acquire a build lock: %s", err) return |