Thread (7 messages) 7 messages, 4 authors, 2021-07-12

Re: [PATCH] cgroup1: fix leaked context root causing sporadic NULL deref in LTP

From: Richard Purdie <hidden>
Date: 2021-06-30 22:31:18
Also in: cgroups, lkml

On Wed, 2021-06-30 at 17:10 +0100, Mark Brown wrote:
On Wed, Jun 16, 2021 at 11:23:34AM -0400, Tejun Heo wrote:
quoted
On Wed, Jun 16, 2021 at 08:51:57AM -0400, Paul Gortmaker wrote:
quoted
quoted
A fix would be to not leave the stale reference in fc->root as follows:
quoted
quoted
   --------------
                  dput(fc->root);
  +               fc->root = NULL;
                  deactivate_locked_super(sb);
   --------------
quoted
quoted
...but then we are just open-coding a duplicate of fc_drop_locked() so we
simply use that instead.
quoted
As this is unlikely to be a real-world problem both in probability and
circumstances, I'm applying this to cgroup/for-5.14 instead of
cgroup/for-5.13-fixes.
FWIW at Arm we've started seeing what appears to be this issue blow up
very frequently in some of our internal LTP CI runs against -next, seems
to be mostly on lower end platforms.  We seem to have started finding it
at roughly the same time that the Yocto people did, I guess some other
change made it more likely to trigger.  Not exactly real world usage
obviously but it's creating quite a bit of noise in testing which is
disruptive so it'd be good to get it into -next as a fix.
It is a horrible bug to debug as you end up with "random" failures on the 
systems which are hard to pin down. Along with the RCU stall hangs it
was all a bit of a nightmare.

Out of interest are you also seeing the proc01 test hang on a non-blocking
read of /proc/kmsg periodically?

https://bugzilla.yoctoproject.org/show_bug.cgi?id=14460

I've not figured out a way to reproduce it at will yet and it seems strace
was enough to unblock it. It seems arm specific.

Cheers,

Richard


Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help