[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CADXeF1Hmuc2NoA=Dg1n_3Yi-2kzGNZQdotb4HJpE-0X9K9Qf5Q@mail.gmail.com>
Date: Fri, 23 May 2025 09:58:08 +0900
From: Yuyang Huang <yuyanghuang@...gle.com>
To: Luca Boccassi <bluca@...ian.org>
Cc: David Ahern <dsahern@...nel.org>, Stephen Hemminger <stephen@...workplumber.org>,
1106321@...s.debian.org, Netdev <netdev@...r.kernel.org>,
Maciej Żenczykowski <maze@...gle.com>
Subject: Re: Bug#1106321: iproute2: "ip monitor" fails with current trixie's
linux kernel / iproute2 combination
Backward compatibility is broken due to the exit(1) in the following changes.
```
+ if (lmask & IPMON_LMADDR) {
+ if ((!preferred_family || preferred_family == AF_INET) &&
+ rtnl_add_nl_group(&rth, RTNLGRP_IPV4_MCADDR) < 0) {
+ fprintf(stderr,
+ "Failed to add ipv4 mcaddr group to list\n");
+ exit(1);
+ }
+ if ((!preferred_family || preferred_family == AF_INET6) &&
+ rtnl_add_nl_group(&rth, RTNLGRP_IPV6_MCADDR) < 0) {
+ fprintf(stderr,
+ "Failed to add ipv6 mcaddr group to list\n");
+ exit(1);
+ }
+ }
+
+ if (lmask & IPMON_LACADDR) {
+ if ((!preferred_family || preferred_family == AF_INET6) &&
+ rtnl_add_nl_group(&rth, RTNLGRP_IPV6_ACADDR) < 0) {
+ fprintf(stderr,
+ "Failed to add ipv6 acaddr group to list\n");
+ exit(1);
+ }
+ }
+
```
My patches follow the existing code styles, so I also added exit(1).
Link: https://git.kernel.org/pub/scm/network/iproute2/iproute2-next.git/tree/ip/ipmonitor.c#n330
I thought iproute2 was intentionally not backward compatible, but it
sounds like that's not true.
I can submit a fix patch to remove the exit(1), which should fix the
backward compatibility issue.
Shall we proceed with this proposal?
Thanks,
Yuyang
On Fri, May 23, 2025 at 9:03 AM Luca Boccassi <bluca@...ian.org> wrote:
>
> On Fri, 23 May 2025 at 01:00, David Ahern <dsahern@...nel.org> wrote:
> >
> > On 5/22/25 4:55 PM, Luca Boccassi wrote:
> > > On Thu, 22 May 2025 at 20:41, Adel Belhouane <bugs.a.b@...e.fr> wrote:
> > >>
> > >> Package: iproute2
> > >> Version: 6.14.0-3
> > >> Severity: normal
> > >> X-Debbugs-Cc: bugs.a.b@...e.fr
> > >>
> > >> Dear Maintainer,
> > >>
> > >> Having iproute2 >= 6.14 while running a linux kernel < 6.14
> > >> triggers this bug (tested using debian-13-nocloud-amd64-daily-20250520-2118.qcow2)
> > >>
> > >> root@...alhost:~# ip monitor
> > >> Failed to add ipv4 mcaddr group to list
> > >>
> > >> More specifically this subcommand, which didn't exist in iproute2 6.13
> > >> is affected:
> > >>
> > >> root@...alhost:~# ip mon maddr
> > >> Failed to add ipv4 mcaddr group to list
> > >> root@...alhost:~# ip -6 mon maddr
> > >> Failed to add ipv6 mcaddr group to list
> > >>
> > >> causing the generic "ip monitor" command to fail.
> > >>
> > >> As trixie will use a 6.12.x kernel, trixie is affected.
> > >>
> > >> bookworm's iproute2/bookworm-backports is also affected since currently
> > >> bookworm's backport kernel is also 6.12.x
> > >>
> > >> Workarounds:
> > >> * upgrade the kernel to experimental's (currently) 6.14.6-1~exp1
> > >> * downgrade iproute2 to 6.13.0-1 (using snapshot.d.o)
> > >> * on bookworm downgrade (using snapshot.d.o)
> > >> iproute2 backport to 6.13.0-1~bpo12+1
> > >>
> > >> Details I could gather:
> > >>
> > >> This appears to come from this iproute2 6.14's commit:
> > >>
> > >> https://git.kernel.org/pub/scm/network/iproute2/iproute2.git/commit/?h=v6.14.0&id=7240e0e40f8332dd9f11348700c0c96b8df4ca5b
> > >>
> > >> which appears to depend on new kernel 6.14 rtnetlink features as described
> > >> in Kernelnewbies ( https://kernelnewbies.org/Linux_6.14#Networking ):
> > >>
> > >> Add ipv6 anycast join/leave notifications
> > >>
> > >> with this (kernel 6.14) commit:
> > >>
> > >> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=33d97a07b3ae6fa713919de4e1864ca04fff8f80
> > >
> > > Hi Stephen and David,
> > >
> > > It looks like there's a regression in iproute2 6.14, and 'ip monitor'
> > > no longer works with kernels < 6.14. Could you please have a look when
> > > you have a moment? Thanks!
> >
> > were not a lot of changes, so most likely the multiaddress or anycast
> > address changes from Yuyang Huang. Please take a look.
>
> The original reporter suggested it was this commit that introduced the
> regression:
>
> https://git.kernel.org/pub/scm/network/iproute2/iproute2.git/commit/?h=v6.14.0&id=7240e0e40f8332dd9f11348700c0c96b8df4ca5b
Powered by blists - more mailing lists