From 987036bf30fbd7ba545c3b9eb9ea66203b0d7186 Mon Sep 17 00:00:00 2001 From: tycho garen Date: Fri, 11 Mar 2022 11:56:23 -0500 Subject: [PATCH] more locking gpt --- internal/consensus/state.go | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/internal/consensus/state.go b/internal/consensus/state.go index c6c5c741d..656d649cb 100644 --- a/internal/consensus/state.go +++ b/internal/consensus/state.go @@ -1406,7 +1406,11 @@ func (cs *State) createProposalBlock(ctx context.Context) (block *types.Block, b return } - proposerAddr := cs.privValidatorPubKey.Address() + proposerAddr := func() []byte { + cs.mtx.RLock() + defer cs.mtx.RUnlock() + return cs.privValidatorPubKey.Address() + }() return cs.blockExec.CreateProposalBlock(ctx, cs.Height, cs.state, commit, proposerAddr, votes) } @@ -2613,7 +2617,12 @@ func (cs *State) updatePrivValidatorPubKey(rctx context.Context) error { if err != nil { return err } - cs.privValidatorPubKey = pubKey + func() { + cs.mtx.Lock() + defer cs.mtx.Unlock() + + cs.privValidatorPubKey = pubKey + }() return nil }