From 1125d1453bdbc2aa51862b94d7c8ec4c149284fc Mon Sep 17 00:00:00 2001 From: zeripath Date: Tue, 11 Feb 2020 23:21:20 +0000 Subject: [PATCH] Stop hanging issue indexer initialisation from preventing shutdown (#10243) Co-authored-by: Lauris BH Co-authored-by: Antoine GIRARD --- modules/indexer/issues/indexer.go | 32 +++++++++++++++---------------- 1 file changed, 15 insertions(+), 17 deletions(-) diff --git a/modules/indexer/issues/indexer.go b/modules/indexer/issues/indexer.go index 95bd5b8a63c..c942013e34b 100644 --- a/modules/indexer/issues/indexer.go +++ b/modules/indexer/issues/indexer.go @@ -143,25 +143,23 @@ func InitIssueIndexer(syncReindex bool) { var populate bool switch setting.Indexer.IssueType { case "bleve": - graceful.GetManager().RunWithShutdownFns(func(_, atTerminate func(context.Context, func())) { - issueIndexer := NewBleveIndexer(setting.Indexer.IssuePath) - exist, err := issueIndexer.Init() - if err != nil { - holder.cancel() - log.Fatal("Unable to initialize Bleve Issue Indexer: %v", err) + issueIndexer := NewBleveIndexer(setting.Indexer.IssuePath) + exist, err := issueIndexer.Init() + if err != nil { + holder.cancel() + log.Fatal("Unable to initialize Bleve Issue Indexer: %v", err) + } + populate = !exist + holder.set(issueIndexer) + graceful.GetManager().RunAtTerminate(context.Background(), func() { + log.Debug("Closing issue indexer") + issueIndexer := holder.get() + if issueIndexer != nil { + issueIndexer.Close() } - populate = !exist - holder.set(issueIndexer) - atTerminate(context.Background(), func() { - log.Debug("Closing issue indexer") - issueIndexer := holder.get() - if issueIndexer != nil { - issueIndexer.Close() - } - log.Info("PID: %d Issue Indexer closed", os.Getpid()) - }) - log.Debug("Created Bleve Indexer") + log.Info("PID: %d Issue Indexer closed", os.Getpid()) }) + log.Debug("Created Bleve Indexer") case "db": issueIndexer := &DBIndexer{} holder.set(issueIndexer)