From: "Toke Høiland-Jørgensen" <toke@toke.dk>
To: Dean Scarff <dos@scarff.id.au>, cake@lists.bufferbloat.net
Subject: Re: [Cake] NLA_F_NESTED is missing
Date: Wed, 04 Nov 2020 12:27:53 +0100 [thread overview]
Message-ID: <87tuu5uzt2.fsf@toke.dk> (raw)
In-Reply-To: <6737e53394e4608f26677644d062bb23@scarff.id.au>
Dean Scarff <dos@scarff.id.au> writes:
> 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.
Ugh, Heisenbugs are the worst! Great to hear you managed to resolve it,
though :)
-Toke
next prev parent reply other threads:[~2020-11-04 11:27 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
2020-11-04 11:27 ` Toke Høiland-Jørgensen [this message]
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=87tuu5uzt2.fsf@toke.dk \
--to=toke@toke.dk \
--cc=cake@lists.bufferbloat.net \
--cc=dos@scarff.id.au \
/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