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 2DA731FF17C for ; Wed, 9 Jul 2025 08:40:34 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 7DC1034697; Wed, 9 Jul 2025 08:41:17 +0200 (CEST) Message-ID: Date: Wed, 9 Jul 2025 08:40:42 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird To: Thomas Lamprecht , Proxmox VE development discussion References: <20250708164344.104855-1-f.weber@proxmox.com> <1dfdf8a9-2632-4a16-8f7c-e17dad435a2f@proxmox.com> Content-Language: en-US From: Friedrich Weber In-Reply-To: <1dfdf8a9-2632-4a16-8f7c-e17dad435a2f@proxmox.com> X-SPAM-LEVEL: Spam detection results: 0 AWL -0.138 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 POISEN_SPAM_PILL 0.1 Meta: its spam POISEN_SPAM_PILL_1 0.1 random spam to be learned in bayes POISEN_SPAM_PILL_3 0.1 random spam to be learned in bayes SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Subject: Re: [pve-devel] [PATCH ifupdown2] debian: postinst: ensure /etc/iproute2/rt_tables.d exists 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" On 08/07/2025 19:01, Thomas Lamprecht wrote: > Am 08.07.25 um 18:43 schrieb Friedrich Weber: >> When upgrading to Debian Trixie, iproute2 is also upgraded. Its >> postinst deletes /etc/iproute2/rt_tables.d if it is currently empty >> (or only contains a README file) [1]. After that, ifreload -a will >> always print a warning: >> >>> error: [Errno 2] No such file or directory: '/etc/iproute2/rt_tables.d/ifupdown2_vrf_map.conf' >> >> because it cannot create the file if the parent directory does not >> exist. >> >> To avoid that, create the directory in ifupdown2's postinst if it >> does not exist yet. >> >> Commit b115f7f ("add /etc/iproute2/rt_tables.d/ to managed >> directories") already added the directory to ifupdown2.dirs, but this >> does not seem to be effective, due to the following sequence of events >> on upgrade: >> >> 1) iproute2 is unpacked >> 2) ifupdown2 is unpacked. The directory still exists, so the >> ifupdown2.dirs entry does not have an effect >> 3) ifroute2 is set up, and its postinst empties and removes the > > s/if/ip/ (can be fixed up on applying). Thanks for catching that. If nothing else comes up, I won't send a v2 though. > >> directory >> 4) ifupdown2 is set up >> >> [1] https://sources.debian.org/src/iproute2/6.15.0-1/debian/iproute2.postinst/ >> >> Signed-off-by: Friedrich Weber >> --- >> >> Notes: >> Please check the reasoning for plausibility, my understanding of dpkg >> is very basic, this is just what I could infer from running strace on >> the upgrade. > > Seems plausible as unpacking happens before configuring the pacakges. > >> >> An alternative solution would be to patch ifupdown2 itself to create >> the directory (if needed) before trying to write to the >> ifupdown2_vrf_map.conf file. > > That might be slightly more robust and should be IMO what upstream should > do already, that said, it's a very specific case and not having to touch > the python code has its advantages, so the patch here would be fine for > me in general. Yeah, I started working on a Python patch first, but as this file is opened at several different places [1], I realized testing such a patch thoroughly (to hit all call sites) would be more difficult for me, and it really is more of an edge case, so the postinst patch also seemed OK to me. I can send this postinst patch upstream too to raise the issue, then we can see whether they'd rather go with a Python patch. [1] https://github.com/CumulusNetworks/ifupdown2/blob/master/ifupdown2/addons/vrf.py > >> >> debian/ifupdown2.postinst | 3 +++ >> 1 file changed, 3 insertions(+) >> >> diff --git a/debian/ifupdown2.postinst b/debian/ifupdown2.postinst >> index f9a719c..13cc987 100644 >> --- a/debian/ifupdown2.postinst >> +++ b/debian/ifupdown2.postinst >> @@ -111,6 +111,9 @@ case "$1" in >> process_udev >> chmod +x /usr/share/ifupdown2/__main__.py >> postinst_remove_diverts >> + if [ ! -d /etc/iproute2/rt_tables.d ]; then >> + mkdir /etc/iproute2/rt_tables.d || echo "could not create /etc/iproute2/rt_tables.d" >> + fi >> if [ -z "$2" ] && [ ! -e /proxmox_install_mode ]; then >> proxmox_compatibility >> echo "Reloading network config on first install" > _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel