• Bug#1106321: iproute2: "ip monitor" fails with current trixie's linux k

    From Adel Belhouane@1:229/2 to All on Thu May 22 21:50:02 2025
    XPost: linux.debian.bugs.dist
    From: bugs.a.b@free.fr

    Package: iproute2
    Version: 6.14.0-3
    Severity: normal
    X-Debbugs-Cc: bugs.a.b@free.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@localhost:~# 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@localhost:~# ip mon maddr
    Failed to add ipv4 mcaddr group to list
    root@localhost:~# 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

    I guess to fix this one could:

    * backport (or have upstream backport) the kernel feature to 6.12.x,
    * or supply iproute2 6.13 instead of iproute 6.14 for trixie with
    some versioning trick,
    * or patch iproute2 to cope with a kernel not having the API changes

    Regards,
    Adel Belhouane.

    -- System Information:
    Debian Release: 13.0
    APT prefers testing
    APT policy: (500, 'testing')
    Architecture: amd64 (x86_64)

    Kernel: Linux 6.12.27-amd64 (SMP w/2 CPU threads; PREEMPT)
    Locale: LANG=C.UTF-8, LC_CTYPE=C.UTF-8 (charmap=UTF-8), LANGUAGE not set
    Shell: /bin/sh linked to /usr/bin/dash
    Init: systemd (via /run/systemd/system)
    LSM: AppArmor: enabled

    Versions of packages iproute2 depends on:
    ii debconf [debconf-2.0] 1.5.91
    ii libbpf1 1:1.5.0-3
    ii libc6 2.41-7
    ii libcap2 1:2.75-7
    ii libcap2-bin 1:2.75-7
    ii libdb5.3t64 5.3.28+dfsg2-9
    ii libelf1t64 0.192-4
    ii libmnl0 1.0.5-3
    ii libselinux1 3.8.1-1
    ii libtirpc3t64 1.3.6+ds-1
    ii libxtables12 1.8.11-2

    iproute2 recommends no packages.

    Versions of packages iproute2 suggests:
    ii python3 3.13.3-1

    -- debconf information excluded

    --- SoupGate-Win32 v1.05
    * Origin: you cannot sedate... all the things you hate (1:229/2)
  • From David Ahern@1:229/2 to Luca Boccassi on Fri May 23 02:20:01 2025
    XPost: linux.debian.bugs.dist
    From: dsahern@kernel.org

    On 5/22/25 4:55 PM, Luca Boccassi wrote:
    On Thu, 22 May 2025 at 20:41, Adel Belhouane <bugs.a.b@free.fr> wrote:

    Package: iproute2
    Version: 6.14.0-3
    Severity: normal
    X-Debbugs-Cc: bugs.a.b@free.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@localhost:~# 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@localhost:~# ip mon maddr
    Failed to add ipv4 mcaddr group to list
    root@localhost:~# 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.

    --- SoupGate-Win32 v1.05
    * Origin: you cannot sedate... all the things you hate (1:229/2)
  • From Luca Boccassi@1:229/2 to Adel Belhouane on Fri May 23 01:00:01 2025
    XPost: linux.debian.bugs.dist
    From: bluca@debian.org

    On Thu, 22 May 2025 at 20:41, Adel Belhouane <bugs.a.b@free.fr> wrote:

    Package: iproute2
    Version: 6.14.0-3
    Severity: normal
    X-Debbugs-Cc: bugs.a.b@free.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@localhost:~# 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@localhost:~# ip mon maddr
    Failed to add ipv4 mcaddr group to list
    root@localhost:~# 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!

    --- SoupGate-Win32 v1.05
    * Origin: you cannot sedate... all the things you hate (1:229/2)
  • From Luca Boccassi@1:229/2 to David Ahern on Fri May 23 02:10:02 2025
    XPost: linux.debian.bugs.dist
    From: bluca@debian.org

    On Fri, 23 May 2025 at 01:00, David Ahern <dsahern@kernel.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@free.fr> wrote:

    Package: iproute2
    Version: 6.14.0-3
    Severity: normal
    X-Debbugs-Cc: bugs.a.b@free.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@localhost:~# 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@localhost:~# ip mon maddr
    Failed to add ipv4 mcaddr group to list
    root@localhost:~# 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

    --- SoupGate-Win32 v1.05
    * Origin: you cannot sedate... all the things you hate (1:229/2)
  • From Yuyang Huang@1:229/2 to bluca@debian.org on Fri May 23 03:20:01 2025
    XPost: linux.debian.bugs.dist
    From: yuyanghuang@google.com

    iproute2 is generally backward compatible with previous kernels yes,

    Acked, will submit a patch ASAP.
    Could you advise which branch needs the fix?
    Is submitting to iproute2-next and iproute2 enough?

    Thanks,

    Yuyang

    On Fri, May 23, 2025 at 10:10 AM Luca Boccassi <bluca@debian.org> wrote:

    On Fri, 23 May 2025 at 01:58, Yuyang Huang <yuyanghuang@google.com> wrote:

    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?

    iproute2 is generally backward compatible with previous kernels yes,
    so it would be great to have a fix for this. Thanks!

    --- SoupGate-Win32 v1.05
    * Origin: you cannot sedate... all the things you hate (1:229/2)
  • From Yuyang Huang@1:229/2 to bluca@debian.org on Fri May 23 03:10:02 2025
    XPost: linux.debian.bugs.dist
    From: yuyanghuang@google.com

    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@debian.org> wrote:

    On Fri, 23 May 2025 at 01:00, David Ahern <dsahern@kernel.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@free.fr> wrote:

    Package: iproute2
    Version: 6.14.0-3
    Severity: normal
    X-Debbugs-Cc: bugs.a.b@free.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@localhost:~# 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@localhost:~# ip mon maddr
    Failed to add ipv4 mcaddr group to list
    root@localhost:~# 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

    --- SoupGate-Win32 v1.05
    * Origin: you cannot sedate... all the things you hate (1:229/2)
  • From David Ahern@1:229/2 to Yuyang Huang on Fri May 23 04:30:01 2025
    XPost: linux.debian.bugs.dist
    From: dsahern@kernel.org

    On 5/22/25 7:17 PM, Yuyang Huang wrote:
    iproute2 is generally backward compatible with previous kernels yes,

    Acked, will submit a patch ASAP.
    Could you advise which branch needs the fix?
    Is submitting to iproute2-next and iproute2 enough?



    Thank you for the quick response.

    I should have caught the exit on lack of support for the feature, so
    that is on me.

    Please send a patch based on iproute2 main (though main and next are practically the same right now).

    --- SoupGate-Win32 v1.05
    * Origin: you cannot sedate... all the things you hate (1:229/2)