diff --git a/importer/fetch.go b/importer/fetch.go index bee2095b2d45cd68fd58dfcf5c2499b9f3b2d225..756d1f9ddc92115e908fefbbec08d6ade1740be4 100644 --- a/importer/fetch.go +++ b/importer/fetch.go @@ -105,6 +105,8 @@ func (job *Job) fetch() error { job.im.errLog.Printf("fetch(): creating fetch converter failed: %v", err) return err } + // from here on conv.Close() and conv.Wait() has to be called in any case to + // reap potential child process zombies done := make(chan copyResult) go func() { @@ -128,6 +130,7 @@ func (job *Job) fetch() error { select { case <-job.ctx.Done(): conv.Close() + go conv.Wait() // do the zombie reaping in seperate go routine since we are not interested in the result anyway err = job.ctx.Err() job.source.done <- &JobSourceResult{Err: err} return err