From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [IPv6:2a01:7e0:0:424::9]) by lore.proxmox.com (Postfix) with ESMTPS id 8B87A1FF38E for ; Wed, 8 May 2024 14:41:50 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 52D891FA1A; Wed, 8 May 2024 14:41:46 +0200 (CEST) From: Dominik Csapak To: pve-devel@lists.proxmox.com Date: Wed, 8 May 2024 14:41:12 +0200 Message-Id: <20240508124112.2519552-3-d.csapak@proxmox.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20240508124112.2519552-1-d.csapak@proxmox.com> References: <20240508124112.2519552-1-d.csapak@proxmox.com> MIME-Version: 1.0 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.016 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DMARC_MISSING 0.1 Missing DMARC policy 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 URIBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to URIBL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more information. [esxiplugin.pm] Subject: [pve-devel] [PATCH storage 1/1] esxi: improve error handling for fuse mount tool 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: , Reply-To: Proxmox VE development discussion Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: pve-devel-bounces@lists.proxmox.com Sender: "pve-devel" if the fuse tool encounters an error early, it prints it like: Error: some error message on stderr. We can capture that here by redirecting STDERR to $wr and die'ing with the error message. With this we die with the original error message instead of only with the return code which is telling the user nothing and does not help us debug. Signed-off-by: Dominik Csapak --- src/PVE/Storage/ESXiPlugin.pm | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/PVE/Storage/ESXiPlugin.pm b/src/PVE/Storage/ESXiPlugin.pm index b8bce0e..8dc33fc 100644 --- a/src/PVE/Storage/ESXiPlugin.pm +++ b/src/PVE/Storage/ESXiPlugin.pm @@ -222,6 +222,10 @@ sub esxi_mount : prototype($$$;$) { // die "failed to get file descriptor flags: $!\n"; fcntl($wr, F_SETFD, $flags & ~FD_CLOEXEC) // die "failed to remove CLOEXEC flag from fd: $!\n"; + + # capture errors from stderr + open(STDERR, ">&", \*$wr) or die "unable to redirect STDERR: $!\n"; + # FIXME: use the user/group options! exec {$ESXI_FUSE_TOOL} $ESXI_FUSE_TOOL, @@ -245,7 +249,7 @@ sub esxi_mount : prototype($$$;$) { undef $wr; my $result = do { local $/ = undef; <$rd> }; - if ($result =~ /^ERROR: (.*)$/) { + if ($result =~ /^ERROR: (.*)$/i) { die "$1\n"; } -- 2.39.2 _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel