Re: [syzbot? printk?] no WARN_ON() messages printed before "Kernel panic - not syncing: panic_on_warn set ..."

From: Sergey Senozhatsky
Date: Thu May 09 2019 - 06:19:47 EST


On (05/09/19 18:58), Sergey Senozhatsky wrote:
> On (05/08/19 19:31), Tetsuo Handa wrote:
> [..]
> > We are again getting corrupted reports where message from WARN() is missing.
> > For example, https://syzkaller.appspot.com/text?tag=CrashLog&x=1720cac8a00000 was
> > titled as "WARNING in cgroup_exit" because the
> > "WARNING: CPU: 0 PID: 7870 at kernel/cgroup/cgroup.c:6008 cgroup_exit+0x51a/0x5d0"
> > line is there but https://syzkaller.appspot.com/text?tag=CrashLog&x=1670a602a00000
> > was titled as "corrupted report (2)" because the
> > "WARNING: CPU: 0 PID: 10223 at kernel/cgroup/cgroup.c:6008 cgroup_exit+0x51a/0x5d0"
> > line is missing. Also, it is unlikely that there was no printk() for a few minutes.
> > Thus, I suspect something is again suppressing console output.
>
> Hmm... That's interesting...

What are these lines right before the kernel panic output?
TTY writes (user space logging)?


03:54:05 executing program 5:
syz_mount_image$xfs(&(0x7f0000000000)='xfs\x00', &(0x7f0000000040)='./file0\x00', 0x0, 0x0, 0x0, 0xe003, &(0x7f00000005c0)={[{@nolargeio='nolargeio'}]})

03:54:06 executing program 2:
syz_emit_ethernet(0x66, &(0x7f0000000080)={@local, @random="029cce98941b", [], {@ipv6={0x86dd, {0x0, 0x6, 'v`Q', 0x30, 0x3a, 0xffffffffffffffff, @remote={0xfe, 0x80, [0x29c, 0x0, 0x700, 0x5], 0xffffffffffffffff}, @mcast2={0xff, 0x2, [0x0, 0xfffffffffffff000]}, {[], @icmpv6=@dest_unreach={0xffffff86, 0x0, 0x0, 0x0, [0x7], {0x0, 0x6, "c5961e", 0x0, 0x0, 0x0, @mcast1={0xff, 0x1, [0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x3, 0x0, 0x0, 0x8906], 0x8200}, @mcast2}}}}}}}, 0x0)

[ 2396.035331][T10223] Kernel panic - not syncing: panic_on_warn set ...
[ 2396.042217][T10223] CPU: 0 PID: 10223 Comm: syz-executor.1 Not tainted 5.1.0-next-20190507 #2


Hmm... Dunno... Don't really have any explanations yet...

Can you add

if (oops_in_progress)
return IRQ_HANDLED;

to you console driver's IRQ handler (xmit TX/RX path)? Just to
check if this will change anything...

-ss