You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
CreateContext() can be called with any height that is greater than or equal to Height, meaning it is impossible to know the ValidatorSet for given height if height is greater than Height.
HandleMessage() can lock the entire ConsensusContext
When ConsensusMsgs with "future" heights are received, it gets funneled to HandleMessage(), and this would result in a lock until the first call to GetNextStateRootHash() is resolved.
It is hard to know the full extent of the problem as this may cause issues on very non-trivial edge cases. The issue is farther exacerbated by having the value of Height becoming further asynchronous with the state of BlockChain the ConsensusContext is referencing.
The text was updated successfully, but these errors were encountered:
There are numerous issues related to this problem.
CreateContext()
can create aContext
with a wrongValidatorSet
libplanet/Libplanet.Net/Consensus/ConsensusContext.cs
Lines 455 to 461 in 7bbce0e
CreateContext()
can be called with anyheight
that is greater than or equal toHeight
, meaning it is impossible to know theValidatorSet
for given height ifheight
is greater thanHeight
.HandleMessage()
can lock the entireConsensusContext
libplanet/Libplanet.Net/Consensus/ConsensusContext.cs
Lines 252 to 275 in 7bbce0e
ConsensusMsg
s with "future" heights are received, it gets funneled toHandleMessage()
, and this would result in a lock until the first call toGetNextStateRootHash()
is resolved.It is hard to know the full extent of the problem as this may cause issues on very non-trivial edge cases. The issue is farther exacerbated by having the value of
Height
becoming further asynchronous with the state ofBlockChain
theConsensusContext
is referencing.The text was updated successfully, but these errors were encountered: