Go to file
Stefan Reiter 43772efc6e backup: check all referenced chunks actually exist
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>
2020-09-15 10:00:05 +02:00
.cargo cargo: switch to use packaged crates by default 2020-01-03 09:40:33 +01:00
debian debian/control: update 2020-09-15 09:33:38 +02:00
docs ui/docs: add onlineHelp button for syncjobs 2020-09-11 12:17:54 +02:00
etc ship pbstest repo as sources.list.d file for beta 2020-07-08 19:09:31 +02:00
examples avoid chrono dependency, depend on proxmox 0.3.8 2020-09-15 07:12:57 +02:00
src backup: check all referenced chunks actually exist 2020-09-15 10:00:05 +02:00
tests introduce Username, Realm and Userid api types 2020-08-10 12:05:01 +02:00
www www/OnlineHelpInfo.js: update for syncjobs 2020-09-12 15:10:08 +02:00
zsh-completions Add zsh completion scripts 2020-02-27 06:50:14 +01:00
.gitignore .gitignore: add build directory 2020-07-22 09:19:29 +02:00
Cargo.toml avoid chrono dependency, depend on proxmox 0.3.8 2020-09-15 07:12:57 +02:00
Makefile buildsys: upload client packages also to PMG repo 2020-09-08 16:48:31 +02:00
README.rst remove the rust-toolchain file 2020-01-16 10:45:46 +01:00
TODO.rst [chore] bump to using pxar 0.2.0 2020-06-25 09:46:56 +02:00
defines.mk Add zsh completion scripts 2020-02-27 06:50:14 +01:00
rustfmt.toml import rustfmt.toml 2019-08-22 13:44:57 +02:00

README.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).