* [pbs-devel] [PATCH proxmox-backup 1/2] blob/chunk parse errors: add context
@ 2023-07-20 10:23 Fabian Grünbichler
2023-07-20 10:23 ` [pbs-devel] [PATCH proxmox-backup 2/2] blobs: fix outdated comment about file format Fabian Grünbichler
2023-08-08 11:59 ` [pbs-devel] applied: [PATCH proxmox-backup 1/2] blob/chunk parse errors: add context Wolfgang Bumiller
0 siblings, 2 replies; 3+ messages in thread
From: Fabian Grünbichler @ 2023-07-20 10:23 UTC (permalink / raw)
To: pbs-devel
to make it more obvious that blob is a chunk here and which one is affected.
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
---
Notes:
encountered here: https://forum.proxmox.com/threads/restore-failed-unable-to-parse-raw-blob-wrong-magic.130828
the remote chunk reader change is only visible in VM restore logs if the Qemu
lib is rebuilt as well, since pbs-restore needs to pick up the change..
pbs-client/src/remote_chunk_reader.rs | 5 +++--
src/bin/proxmox_backup_debug/recover.rs | 2 +-
2 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/pbs-client/src/remote_chunk_reader.rs b/pbs-client/src/remote_chunk_reader.rs
index c975c006..86f7549f 100644
--- a/pbs-client/src/remote_chunk_reader.rs
+++ b/pbs-client/src/remote_chunk_reader.rs
@@ -3,7 +3,7 @@ use std::future::Future;
use std::pin::Pin;
use std::sync::{Arc, Mutex};
-use anyhow::{bail, Error};
+use anyhow::{bail, format_err, Error};
use proxmox_async::runtime::block_on;
@@ -51,7 +51,8 @@ impl RemoteChunkReader {
self.client.download_chunk(digest, &mut chunk_data).await?;
- let chunk = DataBlob::load_from_reader(&mut &chunk_data[..])?;
+ let chunk = DataBlob::load_from_reader(&mut &chunk_data[..])
+ .map_err(|err| format_err!("Failed to parse chunk {} - {err}", hex::encode(digest)))?;
match self.crypt_mode {
CryptMode::Encrypt => match chunk.crypt_mode()? {
diff --git a/src/bin/proxmox_backup_debug/recover.rs b/src/bin/proxmox_backup_debug/recover.rs
index 113da6da..ccac476b 100644
--- a/src/bin/proxmox_backup_debug/recover.rs
+++ b/src/bin/proxmox_backup_debug/recover.rs
@@ -142,7 +142,7 @@ fn recover_index(
if ignore_corrupt_chunks {
create_zero_chunk(format!("is corrupt - {err}"))
} else {
- bail!("{err}");
+ bail!("Failed to parse chunk {chunk_path:?} - {err}");
}
})?
}
--
2.39.2
^ permalink raw reply [flat|nested] 3+ messages in thread
* [pbs-devel] [PATCH proxmox-backup 2/2] blobs: fix outdated comment about file format
2023-07-20 10:23 [pbs-devel] [PATCH proxmox-backup 1/2] blob/chunk parse errors: add context Fabian Grünbichler
@ 2023-07-20 10:23 ` Fabian Grünbichler
2023-08-08 11:59 ` [pbs-devel] applied: [PATCH proxmox-backup 1/2] blob/chunk parse errors: add context Wolfgang Bumiller
1 sibling, 0 replies; 3+ messages in thread
From: Fabian Grünbichler @ 2023-07-20 10:23 UTC (permalink / raw)
To: pbs-devel
the wrong info here was rather misleading, especially when encountering errors
just talking about "blobs" when the actual problem is with a chunk.
chunks did originally have their own magic values, but that got removed in
4ee8f53d07bf0becf19a22cf4f4674558a4d128c "remove DataChunk file format - use DataBlob instead"
back in 2019, before the 0.1.1 release(!)
Reported-by: Dominik Csapak <d.csapak@proxmox.com>
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
---
pbs-datastore/src/file_formats.rs | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/pbs-datastore/src/file_formats.rs b/pbs-datastore/src/file_formats.rs
index 7e08e530..73d67e20 100644
--- a/pbs-datastore/src/file_formats.rs
+++ b/pbs-datastore/src/file_formats.rs
@@ -35,8 +35,8 @@ pub const DYNAMIC_SIZED_CHUNK_INDEX_1_0: [u8; 8] = [28, 145, 78, 165, 25, 186, 1
///
/// (MAGIC || CRC32 || Data)
///
-/// This is basically the same format we use for chunks, but
-/// with other magic numbers so that we can distinguish them.
+/// This format is used for blobs (stored in a BackupDir and accessed directly) and chunks (stored
+/// in a chunk store and accessed via a ChunkReader / index file).
#[derive(Endian)]
#[repr(C, packed)]
pub struct DataBlobHeader {
--
2.39.2
^ permalink raw reply [flat|nested] 3+ messages in thread
* [pbs-devel] applied: [PATCH proxmox-backup 1/2] blob/chunk parse errors: add context
2023-07-20 10:23 [pbs-devel] [PATCH proxmox-backup 1/2] blob/chunk parse errors: add context Fabian Grünbichler
2023-07-20 10:23 ` [pbs-devel] [PATCH proxmox-backup 2/2] blobs: fix outdated comment about file format Fabian Grünbichler
@ 2023-08-08 11:59 ` Wolfgang Bumiller
1 sibling, 0 replies; 3+ messages in thread
From: Wolfgang Bumiller @ 2023-08-08 11:59 UTC (permalink / raw)
To: Fabian Grünbichler; +Cc: pbs-devel
applied both patches, thanks
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2023-08-08 11:59 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-07-20 10:23 [pbs-devel] [PATCH proxmox-backup 1/2] blob/chunk parse errors: add context Fabian Grünbichler
2023-07-20 10:23 ` [pbs-devel] [PATCH proxmox-backup 2/2] blobs: fix outdated comment about file format Fabian Grünbichler
2023-08-08 11:59 ` [pbs-devel] applied: [PATCH proxmox-backup 1/2] blob/chunk parse errors: add context Wolfgang Bumiller
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox