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
It's easy to prevent this race from happening.
In virtual machine, it currently takes the recent block height from state storage - see call to StateStorage.GetStateStorageBlockHeight().
We can change this call to be on block storage instead - BlockStorage.GetStateStorageBlockHeight().
The text was updated successfully, but these errors were encountered:
Height from block storage implies that not updates state storage will hold (on a short race) / fail the call (on state storage not in sync)
Reading from the block storage on every call seams expensive in a a micro-service arch. In general the VM requires a high BW / low latency access to the state storage so this is likely to be solved while frequent access to the block storage is less intuitive.
Another approach which isn't too nice is to delay the TP update until the state storage acknowledges.
Let's discuss if we're willing to live with the race before adding the block storage to the call flow.
There's a race condition in virtual machine that might cause reading from stale state. It is documented here:
orbs-network/orbs-network-go#400 (comment)
The text was updated successfully, but these errors were encountered: