private boolean handleImplicitCrashEdgeFromReverseInitProgress(final NodeInfo node,
                                                                   final NodeState currentState,
                                                                   final NodeState reportedState,
                                                                   final NodeListener nodeListener,
                                                                   final long timeNow) {
        if (currentState.getState().equals(INITIALIZING) &&
            (reportedState.getState().equals(INITIALIZING) && reportedState.getInitProgress() < currentState.getInitProgress()))
        {
            eventLog.add(NodeEvent.forBaseline(node, String.format(
                        "Stop or crash during initialization detected from reverse initializing progress." +
                        " Progress was %g but is now %g. Premature crash count is now %d.",
                        currentState.getInitProgress(), reportedState.getInitProgress(),
                        node.getPrematureCrashCount() + 1),
                    NodeEvent.Type.CURRENT, timeNow), isMaster);
            node.setRecentlyObservedUnstableDuringInit(true);
            handlePrematureCrash(node, nodeListener);
            return true;
        }
        return false;
    }
Modify a node's cross-state information in the cluster based on a newly arrived reported state.

@param  node the node we are computing the state of
@param  currentState the current state of the node
@param  reportedState the new state reported by (or, in the case of down - inferred from) the node
@param  nodeListener this listener is notified for some of the system state changes that this will return
clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/StateChangeHandler.java