2786
2787
if node == n.root() {
2788
>
// Root node can never be deleted
tree.go
2789
>
// This can happen when:
2790
>
// 1. CHASM framework is disabled in source cluster and sends an
2791
>
// empty snapshot to the standby cluster. If the standby cluster
2792
>
// has a non-empty chasm tree, the root node will be marked for
2793
>
// deletion and we will lose archetype information for the execution,
2794
>
// and hit other undefined issues when root is deleted.
2795
>
// Disabled CHASM framework itself is already an undefined situation
2796
>
// for non-workflow chasm executions, and we are ok with not deleting
2797
>
// the root node.
2798
>
//
2799
>
// 2. CHASM is enabled but the execution is a workflow which doesn't
2800
>
// have any chasm nodes. In this case, again an empty snapshot will be sent to
2801
>
// standby cluster.
2802
>
// In this case, we can actually choose to delete the root itself because empty
2803
>
// chasm tree is assume to be a Workflow. However, given chasm workflow component's
2804
>
// state is an empty proto, skipping deletion is fine as well. All other child nodes
2805
>
// will still be deleted.
2806
>
continue
2807
}
2808