[pbs-devel] [PATCH proxmox-backup v2] client: mount: flush output before exiting
Christian Ebner
c.ebner at proxmox.com
Fri Jun 14 11:54:01 CEST 2024
On 6/14/24 11:39, Gabriel Goller wrote:
> When using the `proxmox-backup-client mount` command, the parent sometimes
> exits before we can print any error message. Most notably this happens
> when no PBS_REPOSITORY is passed, as this is the first option checked.
> Flush the stdout and stderr so that we can guarantee the output.
>
> Reported-by: Friedrich Weber <f.weber at proxmox.com>
> Suggested-by: Christian Ebner <c.ebner at proxmox.com>
> Signed-off-by: Gabriel Goller <g.goller at proxmox.com>
> ---
>
> v2, thanks @Christian:
> - Removed unneeded pw.try_clone()
>
> proxmox-backup-client/src/mount.rs | 6 +++++-
> 1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/proxmox-backup-client/src/mount.rs b/proxmox-backup-client/src/mount.rs
> index b69e7e80..e7718b84 100644
> --- a/proxmox-backup-client/src/mount.rs
> +++ b/proxmox-backup-client/src/mount.rs
> @@ -1,6 +1,7 @@
> use std::collections::HashMap;
> use std::ffi::OsStr;
> use std::hash::BuildHasher;
> +use std::io::{self, Write};
> use std::os::unix::io::{AsRawFd, OwnedFd};
> use std::path::{Path, PathBuf};
> use std::sync::Arc;
> @@ -189,7 +190,10 @@ fn mount(
> Ok(ForkResult::Child) => {
> drop(pr);
> nix::unistd::setsid().unwrap();
> - proxmox_async::runtime::main(mount_do(param, Some(pw)))
> + let result = proxmox_async::runtime::main(mount_do(param, Some(pw)));
> + io::stdout().flush()?;
> + io::stderr().flush()?;
> + result
> }
> Err(_) => bail!("failed to daemonize process"),
> }
Looks good to me now, consider:
Reviewed-by: Christian Ebner <c.ebner at proxmox.com>
More information about the pbs-devel
mailing list