From 49dccf4284ba5ef7ad14f98cdb559fe89f81239e Mon Sep 17 00:00:00 2001 From: Dirk McCormick Date: Tue, 30 Jun 2020 14:24:08 -0400 Subject: [PATCH] fix: concurrent map access panic --- chain/events/events_called.go | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/chain/events/events_called.go b/chain/events/events_called.go index 3d8e05c02..04a87a545 100644 --- a/chain/events/events_called.go +++ b/chain/events/events_called.go @@ -443,8 +443,8 @@ func (we *watcherEvents) StateChanged(check CheckFunc, scHnd StateChangeHandler, } we.lk.Lock() - we.matchers[id] = mf defer we.lk.Unlock() + we.matchers[id] = mf return nil } @@ -476,10 +476,11 @@ func (me *messageEvents) checkNewCalls(ts *types.TipSet) (map[triggerID]eventDat return nil, err } + me.lk.RLock() + defer me.lk.RUnlock() + res := make(map[triggerID]eventData) me.messagesForTs(pts, func(msg *types.Message) { - me.lk.RLock() - defer me.lk.RUnlock() // TODO: provide receipts for tid, matchFns := range me.matchers {