43772efc6e
A client can omit uploading chunks in the "known_chunks" list, those then also won't be written on the server side. Check all those chunks mentioned in the index but not uploaded for existance and report an error if they don't exist instead of marking a potentially broken backup as "successful". This is only important if the base snapshot references corrupted chunks, but has not been negatively verified. Also, it is important to only verify this at the end, *after* all index writers are closed, since only then can it be guaranteed that no GC will sweep referenced chunks away. If a chunk is found missing, also mark the previous backup with a verification failure, since we know the missing chunk has to referenced in it (only way it could have been inserted to known_chunks with checked=false). This has the benefit of automatically doing a full-upload backup if the user attempts to retry after seeing the new error, instead of requiring a manual verify or forget. Signed-off-by: Stefan Reiter <s.reiter@proxmox.com> |
||
---|---|---|
.cargo | ||
debian | ||
docs | ||
etc | ||
examples | ||
src | ||
tests | ||
www | ||
zsh-completions | ||
.gitignore | ||
Cargo.toml | ||
defines.mk | ||
Makefile | ||
README.rst | ||
rustfmt.toml | ||
TODO.rst |
``rustup`` Toolchain ==================== We normally want to build with the ``rustc`` Debian package. To do that you can set the following ``rustup`` configuration: # rustup toolchain link system /usr # rustup default system Versioning of proxmox helper crates =================================== To use current git master code of the proxmox* helper crates, add:: git = "ssh://gitolite3@proxdev.maurer-it.com/rust/proxmox" or:: path = "../proxmox/proxmox" to the proxmox dependency, and update the version to reflect the current, pre-release version number (e.g., "0.1.1-dev.1" instead of "0.1.0"). Local cargo config ================== This repository ships with a ``.cargo/config`` that replaces the crates.io registry with packaged crates located in ``/usr/share/cargo/registry``. A similar config is also applied building with dh_cargo. Cargo.lock needs to be deleted when switching between packaged crates and crates.io, since the checksums are not compatible. To reference new dependencies (or updated versions) that are not yet packaged, the dependency needs to point directly to a path or git source (e.g., see example for proxmox crate above).