[pbs-devel] [PATCH v3 proxmox-backup] fix #5710: api: backup: stat known chunks on backup finish

Christian Ebner c.ebner at proxmox.com
Tue Oct 8 11:11:44 CEST 2024


On 10/8/24 10:41, Gabriel Goller wrote:
>> diff --git a/src/api2/backup/mod.rs b/src/api2/backup/mod.rs
>> index ea0d0292e..664e24d99 100644
>> --- a/src/api2/backup/mod.rs
>> +++ b/src/api2/backup/mod.rs
>> @@ -785,6 +785,26 @@ fn finish_backup(
>> ) -> Result<Value, Error> {
>>     let env: &BackupEnvironment = rpcenv.as_ref();
>>
>> +    if let Err(err) = env.stat_prev_known_chunks() {
>> +        env.debug(format!("stat registered chunks failed - {err:?}"));
>> +
>> +        if let Some(last) = env.last_backup.as_ref() {
>> +            // No need to acquire snapshot lock, already locked when 
>> starting the backup
>> +            let verify_state = SnapshotVerifyState {
>> +                state: VerifyState::Failed,
>> +                upid: env.worker.upid().clone(), // backup writer UPID
>> +            };
>> +            let verify_state = serde_json::to_value(verify_state)?;
>> +            last.backup_dir
>> +                .update_manifest(|manifest| {
>> +                    manifest.unprotected["verify_state"] = verify_state;
>> +                })
>> +                .map_err(|err| format_err!("manifest update failed - 
>> {err:?}"))?;
> 
> Can't we add this line here to the error context as well?

True, that was overlooked. Instead of mapping the error, I will however 
go directly for `with_context` [0], which is more concise.

[0] 
https://docs.rs/anyhow/latest/anyhow/trait.Context.html#tymethod.with_context





More information about the pbs-devel mailing list