[pbs-devel] [PATCH proxmox-backup 2/2] fix division by zero

Fabian Grünbichler f.gruenbichler at proxmox.com
Fri Jul 24 07:52:29 CEST 2020


On July 23, 2020 6:16 pm, Stoiko Ivanov wrote:
> in case the backup duration gets rounded to 0 seconds

is this the only place where we calculate speed/throughput like this? if 
not, would it make sense to have a helper that does it in a uniform 
fashion?

> 
> Signed-off-by: Stoiko Ivanov <s.ivanov at proxmox.com>
> ---
>  src/client/backup_writer.rs | 11 ++++++++---
>  1 file changed, 8 insertions(+), 3 deletions(-)
> 
> diff --git a/src/client/backup_writer.rs b/src/client/backup_writer.rs
> index 7e5adb3c..c2db2e76 100644
> --- a/src/client/backup_writer.rs
> +++ b/src/client/backup_writer.rs
> @@ -264,9 +264,14 @@ impl BackupWriter {
>              crate::tools::format::strip_server_file_expenstion(archive_name.clone())
>          };
>          if archive_name != CATALOG_NAME {
> -            let speed: HumanByte = (uploaded / (duration.as_secs() as usize)).into();
> -            let uploaded: HumanByte = uploaded.into();
> -            println!("{}: had to upload {} from {} in {}s, avgerage speed {}/s).", archive, uploaded, vsize_h, duration.as_secs(), speed);
> +            let hb_uploaded: HumanByte = uploaded.into();
> +            match duration.as_secs() {
> +                0 => println!("{}: had to upload {} from {} in {}s", archive, hb_uploaded, vsize_h, duration.as_secs()),

s/from/of

or

s/from/out of

also in this case, it would make sense to print 'in <1s' instead of 0s?

or do we want to calculate speed based on the actual duration in that case? 
or in any case? if we switch to as_millis() it's already rather unlikely 
to return 0 (although it would still need to be handled for very very 
fast systems or broken time keeping)

> +                dur => {
> +                    let speed: HumanByte = (uploaded / (dur as usize)).into();
> +                    println!("{}: had to upload {} from {} in {}s, (average speed {}/s).", archive, hb_uploaded, vsize_h, duration.as_secs(), speed);

'from' is wrong here as well

> +                }
> +            }
>          } else {
>              println!("Uploaded backup catalog ({})", vsize_h);
>          }
> -- 
> 2.20.1
> 
> 
> 
> _______________________________________________
> pbs-devel mailing list
> pbs-devel at lists.proxmox.com
> https://lists.proxmox.com/cgi-bin/mailman/listinfo/pbs-devel
> 
> 
> 





More information about the pbs-devel mailing list