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 1CCBA90A74 for ; Thu, 9 Mar 2023 13:30:48 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id ED507ABCC for ; Thu, 9 Mar 2023 13:30:47 +0100 (CET) Received: from proxmox-new.maurer-it.com (proxmox-new.maurer-it.com [94.136.29.106]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by firstgate.proxmox.com (Proxmox) with ESMTPS for ; Thu, 9 Mar 2023 13:30:47 +0100 (CET) Received: from proxmox-new.maurer-it.com (localhost.localdomain [127.0.0.1]) by proxmox-new.maurer-it.com (Proxmox) with ESMTP id 0F7B742783 for ; Thu, 9 Mar 2023 13:30:47 +0100 (CET) From: Friedrich Weber To: pve-devel@lists.proxmox.com Date: Thu, 9 Mar 2023 13:30:19 +0100 Message-Id: <20230309123019.1080105-1-f.weber@proxmox.com> X-Mailer: git-send-email 2.30.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-SPAM-LEVEL: Spam detection results: 0 AWL -0.512 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Subject: [pve-devel] [PATCH cluster] pvecm add: require user to navigate out of /etc/pve X-BeenThere: pve-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox VE development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Mar 2023 12:30:48 -0000 If `pvecm add` is issued from /etc/pve (or any subdirectory), it prints some errors: [...] shell-init: error retrieving current directory: getcwd: cannot access parent directories: Transport endpoint is not connected [...] successfully added node 'pve-c2' to cluster. cannot fetch initial working directory: Transport endpoint is not connected at /usr/share/perl5/PVE/CLI/pvecm.pm line 446. The reason is that `pvecm add` restarts pmxcfs, which re-mounts the fuse mount at /etc/pve, invalidating pvecm's working directory. The error messages give the impression that something went wrong. Indeed, the second error indicates the temporary directory is not cleaned up. The cluster join itself actually works, though. The issue could be fixed by chdir'ing to / in `pvecm add`. However, the user's shell would still remain in the now-invalid /etc/pve, potentially leading to confusing "transport endpoint not connected" messages in future interactions. To avoid this, require the user to chdir out of /etc/pve before running `pvecm add`. Signed-off-by: Friedrich Weber --- data/PVE/CLI/pvecm.pm | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/data/PVE/CLI/pvecm.pm b/data/PVE/CLI/pvecm.pm index 5ac9ed3..b0b5931 100755 --- a/data/PVE/CLI/pvecm.pm +++ b/data/PVE/CLI/pvecm.pm @@ -3,6 +3,7 @@ package PVE::CLI::pvecm; use strict; use warnings; +use Cwd qw(getcwd); use File::Path; use File::Basename; use PVE::Tools qw(run_command); @@ -348,6 +349,11 @@ __PACKAGE__->register_method ({ code => sub { my ($param) = @_; + # avoid "transport endpoint not connected" errors that occur if + # restarting pmxcfs while in fuse-mounted /etc/pve + die "Navigate out of $basedir before running 'pvecm add', for example by running 'cd'.\n" + if getcwd() =~ m!^$basedir(/.*)?$!; + my $nodename = PVE::INotify::nodename(); my $host = $param->{hostname}; -- 2.30.2