diff --git a/chain/messagepool/messagepool.go b/chain/messagepool/messagepool.go index fbffd912f..1d8478a68 100644 --- a/chain/messagepool/messagepool.go +++ b/chain/messagepool/messagepool.go @@ -878,9 +878,6 @@ func (mp *MessagePool) addTs(ctx context.Context, m *types.SignedMessage, curTs return false, xerrors.Errorf("failed to get sender actor: %w", err) } - mp.lk.Lock() - defer mp.lk.Unlock() - // This message can only be included in the _next_ epoch and beyond, hence the +1. epoch := curTs.Height() + 1 nv := mp.api.StateNetworkVersion(ctx, epoch) @@ -890,6 +887,9 @@ func (mp *MessagePool) addTs(ctx context.Context, m *types.SignedMessage, curTs return false, xerrors.Errorf("sender actor %s is not a valid top-level sender", m.Message.From) } + mp.lk.Lock() + defer mp.lk.Unlock() + publish, err := mp.verifyMsgBeforeAdd(ctx, m, curTs, local) if err != nil { return false, xerrors.Errorf("verify msg failed: %w", err)