InvalidateBlock() in invalidation.go returns false with no error if it fails to retrieve the block from the EngineController, which happens in the following cases:
- When the
EngineController is nil.
- When the
EngineController fails to retrieve an L2BlockRef for the block (via L2BlockRefByNumber()).
- When the hash of the retrieved
L2BlockRef doesn't match the block.
In any of these cases, the invalidation procedure will continue silently with no error, but the execution engine will not be rewound to the previous block. This could happen, for example, if L2BlockRefByNumber() fails due to a network problem, leaving the execution layer out of sync with the Supernode.
Note that invalidateBlock() in interop.go ignores the boolean return value of InvalidateBlock() and returns only the error, so the fact that it returns false in this case doesn't affect the outcome.
InvalidateBlock()ininvalidation.goreturnsfalsewith no error if it fails to retrieve the block from theEngineController, which happens in the following cases:EngineControllerisnil.EngineControllerfails to retrieve anL2BlockReffor the block (viaL2BlockRefByNumber()).L2BlockRefdoesn't match the block.In any of these cases, the invalidation procedure will continue silently with no error, but the execution engine will not be rewound to the previous block. This could happen, for example, if
L2BlockRefByNumber()fails due to a network problem, leaving the execution layer out of sync with the Supernode.Note that
invalidateBlock()ininterop.goignores the boolean return value ofInvalidateBlock()and returns only the error, so the fact that it returnsfalsein this case doesn't affect the outcome.