From: Dean Scarff <dos@scarff.id.au>
To: <cake@lists.bufferbloat.net>
Subject: Re: [Cake] NLA_F_NESTED is missing
Date: Wed, 04 Nov 2020 16:48:27 +1100 [thread overview]
Message-ID: <6737e53394e4608f26677644d062bb23@scarff.id.au> (raw)
In-Reply-To: <87k0v2k8m0.fsf@toke.dk>
On Tue, 03 Nov 2020 12:00:55 +0100, Toke Høiland-Jørgensen wrote:
> Dean Scarff <dos@scarff.id.au> writes:
>
>> On Mon, 02 Nov 2020 13:37:00 +0100, Toke wrote:
>>> Dean Scarff <dos@scarff.id.au> writes:
>>>
>>>> Hi,
>>>>
>>>> I've been happily running the out-of-tree sch_cake on my
>>>> Raspberry
>>>> Pi
>>>> since 2015. However, I recently upgraded my kernel (to 5.4.72
>>>> from
>>>> Raspbian's raspberrypi-kernel 1.20201022-1), which comes with the
>>>> sch_cake in mainline. Now, when running:
>>>>
>>>> sudo /sbin/tc qdisc add dev ppp0 root cake
>>>>
>>>> I get the error:
>>>>
>>>> Error: NLA_F_NESTED is missing.
>>>>
>>>> I get this error with the sch_cake in mainline, and also with
>>>> sch_cake
>>>> built out-of-tree. I also get the error with both Debian's
>>>> iproute2
>>>> 5.9.0-1 (built myself via debian/rules) and "tc" from dtaht's
>>>> tc-adv
>>>> repo.
>>>>
>>>> Any ideas on what this error means and how to fix it?
>>>
>>> I just tried building a 5.4.72 kernel and couldn't reproduce this,
>>> so
>>> it
>>> seems it's a fault with the raspberry pi kernel; I guess opening a
>>> bug
>>> against that would be the way to go?
>>>
>>> As for what's actually causing this, I couldn't find anything
>>> obvious
>>> that touches this code in the qdisc layer; but I suppose it has
>>> something to do with the core qdisc netlink parsing code?
>>>
>>> -Toke
>>
>> Thanks for the data point.
>>
>> For the record, the relevant kernel source is:
>>
>> https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/include/net/netlink.h?h=v5.4.72#n1143
>> and the Pi branch:
>>
>> https://github.com/raspberrypi/linux/blob/raspberrypi-kernel_1.20201022-1/include/net/netlink.h#L1143
>>
>> It seems very unlikely that the Pi folks are patching the netlink
>> stuff, so I don't think I'll get much traction there unless I can
>> call
>> out something specifically wrong with their patchset.
>
> Well, something odd is certainly going on. The error message you're
> quoting comes form a part of the netlink parsing code (in the kernel)
> that shouldn't even be hit by the qdisc addition: NLA_F_NESTED
> parsing
> is only enabled in 'strict' validation mode, which is not used for
> qdiscs.
>
> So IDK, maybe a compiler issue or a bit that gets set wrong
> somewhere?
> Bisecting the kernel may be the only option here, I don't think
> you're
> going to find anything in userspace...
Yeah, I came to the same conclusion. I verified the userspace was sane
via gdb (see earlier post), and I also read through the sch_api.c and
nlattr.c kernel code and it sure looks impossible for the strict
validation to be getting hit.
Safe to say this was random corruption: I downgraded the kernel, things
worked as expected, then I upgraded back to the 5.4.72 and it worked
too! Interestingly, the problem persisted across reboots (so it wasn't
just RAM corruption), and all the kernel files also matched their "dpkg"
MD5s (so it wasn't like the binaries were obviously corrupt on disk).
I've replaced the Pi's microSD card just to be safe, though... kernel
corruption is scary.
next prev parent reply other threads:[~2020-11-04 5:48 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-11-01 10:15 Dean Scarff
2020-11-01 16:53 ` Y
2020-11-02 12:37 ` Toke Høiland-Jørgensen
2020-11-03 1:11 ` Dean Scarff
2020-11-03 8:07 ` Dean Scarff
2020-11-03 11:00 ` Toke Høiland-Jørgensen
2020-11-04 5:48 ` Dean Scarff [this message]
2020-11-04 11:27 ` Toke Høiland-Jørgensen
2020-11-03 1:14 ` Jonathan Morton
2020-11-03 1:51 ` Dean Scarff
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://lists.bufferbloat.net/postorius/lists/cake.lists.bufferbloat.net/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=6737e53394e4608f26677644d062bb23@scarff.id.au \
--to=dos@scarff.id.au \
--cc=cake@lists.bufferbloat.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox