From f94cd2813d074f81fe3e96119e0f6de20aca5729 Mon Sep 17 00:00:00 2001 From: Steve Francia Date: Thu, 2 Jun 2016 16:47:28 -0400 Subject: [PATCH] Handle errors during rereading properly Without this fix, any error during rereading would cause Hugo to hang. Fixes #2168 Closes #2179 --- hugolib/site.go | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/hugolib/site.go b/hugolib/site.go index 7537fe8fd..bbbacb4a8 100644 --- a/hugolib/site.go +++ b/hugolib/site.go @@ -505,11 +505,15 @@ func (s *Site) ReBuild(events []fsnotify.Event) error { } file, err := s.reReadFile(ev.Name) + if err != nil { - errs <- err + jww.ERROR.Println("Error reading file", ev.Name, ";", err) + } + + if file != nil { + filechan <- file } - filechan <- file } // we close the filechan as we have sent everything we want to send to it. // this will tell the sourceReaders to stop iterating on that channel @@ -559,8 +563,8 @@ func (s *Site) ReBuild(events []fsnotify.Event) error { return nil } - return err + return err } func (s *Site) Analyze() error { @@ -835,7 +839,6 @@ func (s *Site) reReadFile(absFilePath string) (*source.File, error) { if err != nil { return nil, err } - file, err = source.NewFileFromAbs(s.absContentDir(), absFilePath, reader) if err != nil {