Re: [syzbot] [apparmor?] [ext4?] INFO: rcu detected stall in sys_getdents64

From: Tetsuo Handa
Date: Thu Oct 10 2024 - 05:49:54 EST


This is a printk() flooding problem in bridge driver. Should consider using ratelimit.

#syz set subsystems: net

On 2024/10/10 12:27, syzbot wrote:
> Hello,
>
> syzbot found the following issue on:
>
> HEAD commit: fc20a3e57247 Merge tag 'for-linus-6.12a-rc2-tag' of git://..
> git tree: upstream
> console output: https://syzkaller.appspot.com/x/log.txt?x=1083b380580000
> kernel config: https://syzkaller.appspot.com/x/.config?x=ba92623fdea824c9
> dashboard link: https://syzkaller.appspot.com/bug?extid=17bc8c5157022e18da8b
> compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40
> syz repro: https://syzkaller.appspot.com/x/repro.syz?x=135f7d27980000
> C reproducer: https://syzkaller.appspot.com/x/repro.c?x=1483b380580000
>
> Downloadable assets:
> disk image: https://storage.googleapis.com/syzbot-assets/2ad9af7b84b4/disk-fc20a3e5.raw.xz
> vmlinux: https://storage.googleapis.com/syzbot-assets/1afa462ca485/vmlinux-fc20a3e5.xz
> kernel image: https://storage.googleapis.com/syzbot-assets/75c0900b4786/bzImage-fc20a3e5.xz
>
> IMPORTANT: if you fix the issue, please add the following tag to the commit:
> Reported-by: syzbot+17bc8c5157022e18da8b@xxxxxxxxxxxxxxxxxxxxxxxxx
>
> bridge0: received packet on veth0_to_bridge with own address as source address (addr:aa:aa:aa:aa:aa:0c, vlan:0)
> rcu: INFO: rcu_preempt detected stalls on CPUs/tasks:
> rcu: Tasks blocked on level-0 rcu_node (CPUs 0-1): P5244/1:b..l
> rcu: (detected by 1, t=10503 jiffies, g=5253, q=1466 ncpus=2)
> task:syz-executor116 state:R running task stack:18800 pid:5244 tgid:5244 ppid:5243 flags:0x00000002
(...snipped...)
> net_ratelimit: 33488 callbacks suppressed
> bridge0: received packet on veth0_to_bridge with own address as source address (addr:aa:aa:aa:aa:aa:0c, vlan:0)
> bridge0: received packet on veth0_to_bridge with own address as source address (addr:aa:aa:aa:aa:aa:0c, vlan:0)
> bridge0: received packet on bridge_slave_0 with own address as source address (addr:aa:aa:aa:aa:aa:0c, vlan:0)
> bridge0: received packet on bridge_slave_0 with own address as source address (addr:aa:aa:aa:aa:aa:0c, vlan:0)
> bridge0: received packet on veth0_to_bridge with own address as source address (addr:aa:aa:aa:aa:aa:0c, vlan:0)
> bridge0: received packet on veth0_to_bridge with own address as source address (addr:aa:aa:aa:aa:aa:0c, vlan:0)
> bridge0: received packet on bridge_slave_0 with own address as source address (addr:aa:aa:aa:aa:aa:0c, vlan:0)
> bridge0: received packet on bridge_slave_0 with own address as source address (addr:aa:aa:aa:aa:aa:0c, vlan:0)
> bridge0: received packet on veth0_to_bridge with own address as source address (addr:aa:aa:aa:aa:aa:0c, vlan:0)
> bridge0: received packet on veth0_to_bridge with own address as source address (addr:aa:aa:aa:aa:aa:0c, vlan:0)