In the join process, each node reports its CIB version, and the controller syncs the highest-versioned CIB to all nodes. It tracks which node had the highest version in max_generation_from.
If the node in max_generation_from leaves the cluster, max_generation_from should be wiped and updated with a current value. Currently it isn't, and do_dc_join_finalize() will request that the down node's CIB be sync'd, which will fail with "error: Could not sync CIB from ...: Timer expired".