[pbs-devel] applied: [PATCH proxmox-backup] tools/process_locker: Decrement writer count in drop handler

Dietmar Maurer dietmar at proxmox.com
Fri Dec 18 07:15:34 CET 2020


applied

> On 12/17/2020 3:33 PM Dominik Csapak <d.csapak at proxmox.com> wrote:
> 
>  
> of ProcessLockSharedGuard.
> 
> We use a counter to determine if we can unlock the file again, but
> we never actually decremented the writer count, so we held the
> lock forever.
> 
> This fixes the issue that we could not start a garbage collect after
> a reload, as long as the old process is still running, even when that
> process has no active backup anymore but another long running task
> (e.g. file download, terminal, etc.).
> 
> Signed-off-by: Dominik Csapak <d.csapak at proxmox.com>
> ---
>  src/tools/process_locker.rs | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/src/tools/process_locker.rs b/src/tools/process_locker.rs
> index 56f8c514..6ab2e1c1 100644
> --- a/src/tools/process_locker.rs
> +++ b/src/tools/process_locker.rs
> @@ -55,7 +55,9 @@ impl  Drop for ProcessLockSharedGuard {
>              if let Err(err) = nix::fcntl::fcntl(data.file.as_raw_fd(), nix::fcntl::FcntlArg::F_SETLKW(&op)) {
>                  panic!("unable to drop writer lock - {}", err);
>              }
> -            data.writers = 0;
> +        }
> +        if data.writers > 0 {
> +            data.writers -= 1;
>          }
>      }
>  }
> -- 
> 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