public inbox for pbs-devel@lists.proxmox.com
 help / color / mirror / Atom feed
From: "Gabriel Goller" <g.goller@proxmox.com>
To: "Christian Ebner" <c.ebner@proxmox.com>,
	"Proxmox Backup Server development discussion"
	<pbs-devel@lists.proxmox.com>
Subject: Re: [pbs-devel] [PATCH v4 proxmox{, -backup} 0/2] close #4763: client: added command to forget backup group
Date: Thu, 18 Apr 2024 11:13:18 +0200	[thread overview]
Message-ID: <D0N4T5UHWJFU.3G9P11EB4ZNSH@proxmox.com> (raw)
In-Reply-To: <fdae22a8-7f9d-4a4e-a812-e06711f39ac5@proxmox.com>

On Wed Apr 17, 2024 at 4:15 PM CEST, Christian Ebner wrote:
> Hi,
> thanks for tackling this issue.
>
> The group forget command is something I missed quite a lot when doing 
> testing on PBS with accumulating snapshots in a group an not wanting to 
> fallback to the UI (I actually always went the route of deleting the 
> snapshot folder).
>
> Tested the following:
> - Created a few backup snapshots, creating thereby a new backup group
> - Tried to delete the group while backup is running
>    result was as expected: delete failed, missing lock error
> - Tried to delete the group while a restore is running
>    result was as expected: delete failed, missing lock (although 
> different from the previous one)
> - Tried to remove without any other task running
>    result was as expected: group deleted, including the group folder in 
> the datastore
> - Tried to delete empty group
>    result was as expected: group deleted, including the group folder in 
> the datastore
>
> Two further things I noticed:
>
> The confirmation dialog also allows me to type in `yolo` or any string 
> starting with `yY` and nevertheless accepts this as valid confirmation 
> input (similar for negation). Should we limit this further?

It seems 'apt' also matches just on the beginning character, but
nevertheless we can do this, wouldn't hurt restricting it more

I think adding a '$' on the regex should do the trick:

    let no_regex: Regex = Regex::new("^[nN]$").unwrap();


> When one tries to delete a non existing group, the dialog asks me for 
> confirmation, failing however afterwards with an error message, leaking 
> also the datastore path to the client. While the former is not an issue 
> and the intention is to be able to remove empty groups, the latter is 
> not okay in my opinion.
> So either check if the group even exists before asking for confirmation, 
> or map the error to not leak the datastore path.

The thing is that we don't differentiate between an empty group or a
nonexistent group — at least when using the api. This means that even
the list-groups api call will **not** return a group if it doesn't contain
any snapshots, but deleting it will succeed (because it still exists).

What we can do is obviously ignore the error message and simply return a
generic "failed to remove group" or "group not found" to avoid leaking
stuff. Although debugging a issue will be much harder with these vague 
error messages. 

IMO leaking the datastore is not a big issue, as the client can also
list task logs and the datastore path is going to be visible in there as
well.

> For the rest consider this:
>
> Tested-by: Christian Ebner <c.ebner@proxmox.com>

Thanks for testing this!


_______________________________________________
pbs-devel mailing list
pbs-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pbs-devel

  parent reply	other threads:[~2024-04-18  9:13 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-12-07 12:51 Gabriel Goller
2023-12-07 12:51 ` [pbs-devel] [PATCH v4 proxmox 1/2] router: cli: added `ask_for_confirmation` helper Gabriel Goller
2023-12-07 12:51 ` [pbs-devel] [PATCH v4 proxmox-backup 2/2] close #4763: client: added command to forget backup group Gabriel Goller
2024-04-09  9:02 ` [pbs-devel] [PATCH v4 proxmox{, -backup} 0/2] " Gabriel Goller
2024-04-17 14:15 ` Christian Ebner
2024-04-17 14:26   ` Christian Ebner
2024-04-18  9:13   ` Gabriel Goller [this message]
2024-04-18 10:24     ` Christian Ebner
2024-04-18 11:49       ` Gabriel Goller

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=D0N4T5UHWJFU.3G9P11EB4ZNSH@proxmox.com \
    --to=g.goller@proxmox.com \
    --cc=c.ebner@proxmox.com \
    --cc=pbs-devel@lists.proxmox.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal