From a7738af169a46f3b2078571d84e1c49f40b1d0f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Magiera?= Date: Tue, 3 Dec 2019 23:34:15 +0100 Subject: [PATCH] storageminer: exit fpostScheduler loop cleanly --- storage/fpost_sched.go | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/storage/fpost_sched.go b/storage/fpost_sched.go index 9480dc3c2..1b5c18b27 100644 --- a/storage/fpost_sched.go +++ b/storage/fpost_sched.go @@ -49,10 +49,17 @@ func (s *fpostScheduler) run(ctx context.Context) { panic(err) } + defer s.abortActivePoSt() + // not fine to panic after this point for { select { - case changes := <-notifs: + case changes, ok := <-notifs: + if !ok { + log.Warn("fpostScheduler notifs channel closed") + return + } + ctx, span := trace.StartSpan(ctx, "fpostScheduler.headChange") var lowest, highest *types.TipSet = s.cur, nil @@ -74,6 +81,8 @@ func (s *fpostScheduler) run(ctx context.Context) { } span.End() + case <-ctx.Done(): + return } } }