From: Christian Ebner <c.ebner@proxmox.com>
To: Robert Obkircher <r.obkircher@proxmox.com>
Cc: pbs-devel@lists.proxmox.com
Subject: Re: [PATCH proxmox-backup v2 5/5] sync: push: gracefully handle previous manifest signature mismatches
Date: Thu, 23 Jul 2026 11:45:10 +0200 [thread overview]
Message-ID: <7df11e72-d872-4002-8609-84c4717185aa@proxmox.com> (raw)
In-Reply-To: <cc225ce5-6bdb-4d1d-8606-99365296451e@proxmox.com>
On 7/23/26 11:32 AM, Robert Obkircher wrote:
>
> On 22.07.26 16:48, Christian Ebner wrote:
>> On 7/22/26 1:30 PM, Robert Obkircher wrote:
>>>> During push sync jobs with a given active encryption key, the key is
>>>> loaded for the backup writer, used to encrypt the source snapshot on
>>>> the fly. As optimization, the backup writer deduplicates chunks
>>>> already present in the previous snapshot by loading them from the
>>>> index files as stored in the previous manifest.
>>>>
>>>> Reuse of the previous manifest and index must however only happen if:
>>>> - The previous manifest is not encrypted, neither will push encrypt.
>>>> - The previous manifest is encrypted and passes signature
>>>> verification using the same key to be used during push encryption.
>> [..]
>>>> + .and_then(|manifest| {
>>>> + let fingerprint = manifest
>>>> + .fingerprint()
>>>> + .context("failed getting fingerprint")?;
>>>> +
>>>> + let Some(manifest_key_fp) = fingerprint else {
>>>> + if encrypt_using_key.is_none() {
>>>> + return Ok(Arc::new(manifest));
>>> What if encrypt_using_key is None because the local chunks are already
>>> encrypted? Shouldn't we expect a fingerprint in that case?
>>
>> The fingerprint here is the one of the previous manifest on the
>> remote, so if that has no fingerprint (not encrypted), and we have
>> no key to encrypted (encrypt_using_key == None) it is fine to use
>> the manifest for de-duplication during chunk upload of the contained
>> matching index files, analog to an incremental backup. So if the
>> local snapshot to be pushed is already encrypted (not on the fly
>> encrypted), it will be allowed to reuse the manifest, but there will
>> be no matching chunk digest. Just like for a regular push without
>> any server side encryption.
>>
>> At least that is the intended behavior.
> Isn't it technically always fine to use it for deduplication and just
> inefficient when nothing matches?
>
> The commit message states that we must not reuse when going from
> unencrypted to "push encrypted". Why is that forbidden while going
> from unencrypted to before-push encrypted seems to be allowed? Is it
> because we know for sure that "push encrypt" will encrypt everything,
> while the other case could still reference unencrypted chunks?
Technically yes, but there is no point in trying to, see suggestions in
https://lore.proxmox.com/pbs-devel/1777462096.q4ecgbr8bo.astroid@yuna.none/
Tried to keep the previous behavior for regular
(non-server-side-encrypted) push though.
next prev parent reply other threads:[~2026-07-23 9:45 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-07 13:01 [PATCH proxmox-backup v2 0/5] restrict previous manifest reuse checks for push sync jobs Christian Ebner
2026-05-07 13:01 ` [PATCH proxmox-backup v2 1/5] datastore: data blob: refactor crypt mode method Christian Ebner
2026-05-07 13:01 ` [PATCH proxmox-backup v2 2/5] datastore: data blob: refactor decoding method Christian Ebner
2026-07-22 11:31 ` Robert Obkircher
2026-05-07 13:01 ` [PATCH proxmox-backup v2 3/5] client: backup writer: pass no crypt config to manifest blob decoder Christian Ebner
2026-05-07 13:01 ` [PATCH proxmox-backup v2 4/5] client: allow skipping signature check on previous manifest fetching Christian Ebner
2026-05-07 13:01 ` [PATCH proxmox-backup v2 5/5] sync: push: gracefully handle previous manifest signature mismatches Christian Ebner
2026-07-22 11:31 ` Robert Obkircher
2026-07-22 14:49 ` Christian Ebner
2026-07-23 9:32 ` Robert Obkircher
2026-07-23 9:45 ` Christian Ebner [this message]
2026-07-21 11:03 ` [PATCH proxmox-backup v2 0/5] restrict previous manifest reuse checks for push sync jobs Christian Ebner
2026-07-22 11:31 ` Robert Obkircher
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=7df11e72-d872-4002-8609-84c4717185aa@proxmox.com \
--to=c.ebner@proxmox.com \
--cc=pbs-devel@lists.proxmox.com \
--cc=r.obkircher@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.