diff --git a/multinode-demo/fullnode.sh b/multinode-demo/fullnode.sh index ed5dd9fe1d07ce..f28c5f3c0560ef 100755 --- a/multinode-demo/fullnode.sh +++ b/multinode-demo/fullnode.sh @@ -489,7 +489,13 @@ while true; do new_state_archive="$SOLANA_RSYNC_CONFIG_DIR"/new_state.tgz ( rm -rf "$new_state_dir" "$new_state_archive" - cp -a "$state_dir" "$new_state_dir" + mkdir -p "$new_state_dir" + # When saving the state, its necessary to have the snapshots be saved first + # followed by the accounts folder. This would avoid conditions where incomplete + # accounts gets picked while its still in the process of being updated and are + # not frozen yet. + cp -a "$state_dir"/snapshots "$new_state_dir" + cp -a "$state_dir"/accounts "$new_state_dir" cd "$new_state_dir" tar zcfS "$new_state_archive" ./* )