From c30db7ad92a4a01b90de39f9ef11baf184b2458d Mon Sep 17 00:00:00 2001 From: Brooks Date: Tue, 23 Jan 2024 14:35:10 -0500 Subject: [PATCH] Replaces fs-err in snapshot_version_from_file() (#34904) --- runtime/src/snapshot_utils.rs | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/runtime/src/snapshot_utils.rs b/runtime/src/snapshot_utils.rs index adc251dd4..c0ff24f98 100644 --- a/runtime/src/snapshot_utils.rs +++ b/runtime/src/snapshot_utils.rs @@ -1606,7 +1606,13 @@ pub fn rebuild_storages_from_snapshot_dir( /// threshold, it is not opened and an error is returned. fn snapshot_version_from_file(path: impl AsRef) -> Result { // Check file size. - let file_size = fs_err::metadata(&path)?.len(); + let file_metadata = fs::metadata(&path).map_err(|err| { + IoError::other(format!( + "failed to query snapshot version file metadata '{}': {err}", + path.as_ref().display(), + )) + })?; + let file_size = file_metadata.len(); if file_size > MAX_SNAPSHOT_VERSION_FILE_SIZE { let error_message = format!( "snapshot version file too large: '{}' has {} bytes (max size is {} bytes)", @@ -1619,7 +1625,19 @@ fn snapshot_version_from_file(path: impl AsRef) -> Result { // Read snapshot_version from file. let mut snapshot_version = String::new(); - fs_err::File::open(path.as_ref()).and_then(|mut f| f.read_to_string(&mut snapshot_version))?; + let mut file = fs::File::open(&path).map_err(|err| { + IoError::other(format!( + "failed to open snapshot version file '{}': {err}", + path.as_ref().display() + )) + })?; + file.read_to_string(&mut snapshot_version).map_err(|err| { + IoError::other(format!( + "failed to read snapshot version from file '{}': {err}", + path.as_ref().display() + )) + })?; + Ok(snapshot_version.trim().to_string()) }