From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by lists.proxmox.com (Postfix) with ESMTPS id 33D7961A03 for ; Tue, 15 Sep 2020 08:09:51 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 2256116A03 for ; Tue, 15 Sep 2020 08:09:51 +0200 (CEST) Received: from proxmox-new.maurer-it.com (proxmox-new.maurer-it.com [212.186.127.180]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by firstgate.proxmox.com (Proxmox) with ESMTPS id 98AA5169F5 for ; Tue, 15 Sep 2020 08:09:50 +0200 (CEST) Received: from proxmox-new.maurer-it.com (localhost.localdomain [127.0.0.1]) by proxmox-new.maurer-it.com (Proxmox) with ESMTP id 2BF1C44A83 for ; Tue, 15 Sep 2020 08:09:50 +0200 (CEST) Date: Tue, 15 Sep 2020 08:09:04 +0200 (CEST) From: Dietmar Maurer To: Proxmox Backup Server development discussion , Stefan Reiter Message-ID: <538882794.11.1600150144899@webmail.proxmox.com> In-Reply-To: <20200914085019.14101-2-s.reiter@proxmox.com> References: <20200914085019.14101-1-s.reiter@proxmox.com> <20200914085019.14101-2-s.reiter@proxmox.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Priority: 3 Importance: Normal X-Mailer: Open-Xchange Mailer v7.10.3-Rev22 X-Originating-Client: open-xchange-appsuite X-SPAM-LEVEL: Spam detection results: 0 AWL 0.089 Adjusted score from AWL reputation of From: address KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment RCVD_IN_DNSWL_MED -2.3 Sender listed at https://www.dnswl.org/, medium trust SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Subject: Re: [pbs-devel] [PATCH v4 proxmox-backup 2/2] backup: check all referenced chunks actually exist X-BeenThere: pbs-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox Backup Server development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 15 Sep 2020 06:09:51 -0000 unrelated question below: /// Ensure all chunks referenced in this backup actually exist. > + /// Only call *after* all writers have been closed, to avoid race with GC. > + /// In case of error, mark the previous backup as 'verify failed'. > + fn verify_chunk_existance(&self, known_chunks: &KnownChunksMap) -> Result<(), Error> { > + for (digest, (_, checked)) in known_chunks.iter() { > + if !checked && !self.datastore.chunk_path(digest).0.exists() { > + let mark_msg = if let Some(ref last_backup) = self.last_backup { > + let last_dir = &last_backup.backup_dir; > + let verify_state = SnapshotVerifyState { > + state: "failed".to_owned(), Why is state a String? This should be an enum instead? Please can you take a look at that? > + upid: self.worker.upid().clone(), > + }; > + > + let res = proxmox::try_block!{ > + let (mut manifest, _) = self.datastore.load_manifest(last_dir)?; > + manifest.unprotected["verify_state"] = serde_json::to_value(verify_state)?; > + self.datastore.store_manifest(last_dir, serde_json::to_value(manifest)?) > + };