Re: [syzbot] WARNING in register_shrinker_prepared

From: Roman Gushchin
Date: Mon Jun 06 2022 - 19:35:20 EST


On Mon, Jun 06, 2022 at 02:34:36PM -0700, Eric Biggers wrote:
> On Mon, Jun 06, 2022 at 12:23:02PM -0700, Andrew Morton wrote:
> > (cc Roman)
> >
> > On Mon, 06 Jun 2022 10:17:34 -0700 syzbot <syzbot+300d27c79fe6d4cbcc39@xxxxxxxxxxxxxxxxxxxxxxxxx> wrote:
> >
> > > Hello,
> > >
> > > syzbot found the following issue on:
> > >
> > > HEAD commit: 1cfd968b58a1 Add linux-next specific files for 20220603
> > > git tree: linux-next
> > > console+strace: https://syzkaller.appspot.com/x/log.txt?x=12f7b6b3f00000
> > > kernel config: https://syzkaller.appspot.com/x/.config?x=7da8386e3742814f
> > > dashboard link: https://syzkaller.appspot.com/bug?extid=300d27c79fe6d4cbcc39
> > > compiler: gcc (Debian 10.2.1-6) 10.2.1 20210110, GNU ld (GNU Binutils for Debian) 2.35.2
> > > syz repro: https://syzkaller.appspot.com/x/repro.syz?x=103e5177f00000
> > > C reproducer: https://syzkaller.appspot.com/x/repro.c?x=13545057f00000
> > >
> > > IMPORTANT: if you fix the issue, please add the following tag to the commit:
> > > Reported-by: syzbot+300d27c79fe6d4cbcc39@xxxxxxxxxxxxxxxxxxxxxxxxx
> > >
> > > loop0: detected capacity change from 0 to 20
> > > ------------[ cut here ]------------
> > > WARNING: CPU: 0 PID: 3694 at mm/vmscan.c:681 register_shrinker_prepared+0x119/0x150 mm/vmscan.c:681
> >
> > That's
> >
> > WARN_ON_ONCE(shrinker_debugfs_add(shrinker));
> >
> > I assume that debugfs_create_dir() failed. Please see the NOTE: in
> > that function's kerneldoc.
> >
>
> The call to ida_alloc() can fail too.
>
> register_shrinker_prepared() is not allowed to fail; anything that can fail must
> happen in prealloc_shrinker(). So either this new debugfs registration code
> needs to be moved to prealloc_shrinker(), or errors from it need to be ignored
> (which might be appropriate since it is just debugfs).

I don't think we want to panic or fail to mount filesystems because of it,
so I agree, ignoring is the best option.