Set a checkpoint as incompatible if it cannot be deserialised

Description

When deserialising a flow, set it as `compatible=false` if the checkpoint fails to deserialise. See `SingleThreadedStateMachineManager.tryCheckpointDeserialize`.

If a checkpoint has been marked as incompatible, it should not be loaded and run at node startup. See `SingleThreadedStateMachineManager.restoreFlowsFromCheckpoints`.

Activity

Show:
Dan Newton
May 6, 2020, 10:58 AM

Moved to from due to further thought around its functionality needs to be decided. We probably need to have a FEAT to describes the benefit to a node operator.

Dan Newton
May 15, 2020, 9:05 AM

This will work similar to pausing a flow, sessions messages still retrieved etc.

Operators can then downgrade their cordapp or node to fix the incompatible flows, kill them or retry them from a flows parameters (from metadata) as a new flow.

Assignee

William Vigor

Reporter

Dan Newton

Labels

None

Sprint

Epic Link

None

Priority

Low

Engineering Teams

Kernel - Flow State Machine

Fix versions

Affects versions

None

Story Points / Dev Days

5

Build cut

None
Configure