Re: [syzbot] [sound?] possible deadlock in snd_seq_deliver_event (2)
Takashi Iwai <[email protected]>
| Newsgroups | gmane.linux.sound,gmane.linux.kernel |
|---|---|
| Message-ID | <[email protected]> |
On Thu, 30 Jul 2026 03:59:25 +0200, syzbot wrote: > > Hello, > > syzbot found the following issue on: > > HEAD commit: fc02acf6ac0c Merge tag 'platform-drivers-x86-v7.2-4' of gi.. > git tree: upstream > console output: https://syzkaller.appspot.com/x/log.txt?x=17a0b8c6580000 > kernel config: https://syzkaller.appspot.com/x/.config?x=145fa60d73086782 > dashboard link: https://syzkaller.appspot.com/bug?extid=d4d7ac4a87bb2d52a822 > compiler: gcc (Debian 14.2.0-19) 14.2.0, GNU ld (GNU Binutils for Debian) 2.44 > > Unfortunately, I don't have any reproducer for this issue yet. > > Downloadable assets: > disk image: https://storage.googleapis.com/syzbot-assets/67251350dd03/disk-fc02acf6.raw.xz > vmlinux: https://storage.googleapis.com/syzbot-assets/e4edd57a8c61/vmlinux-fc02acf6.xz > kernel image: https://storage.googleapis.com/syzbot-assets/04ff166cc853/bzImage-fc02acf6.xz > > IMPORTANT: if you fix the issue, please add the following tag to the commit: > Reported-by: [email protected] > > ============================================ > WARNING: possible recursive locking detected > syzkaller #0 Not tainted > -------------------------------------------- > kworker/1:3/5615 is trying to acquire lock: > ffff888032c85128 (&grp->list_lock){.+.+}-{3:3}, at: __deliver_to_subscribers sound/core/seq/seq_clientmgr.c:723 [inline] > ffff888032c85128 (&grp->list_lock){.+.+}-{3:3}, at: deliver_to_subscribers sound/core/seq/seq_clientmgr.c:763 [inline] > ffff888032c85128 (&grp->list_lock){.+.+}-{3:3}, at: snd_seq_deliver_event+0x230/0x860 sound/core/seq/seq_clientmgr.c:813 > > but task is already holding lock: > ffff8880269b0128 (&grp->list_lock){.+.+}-{3:3}, at: __deliver_to_subscribers sound/core/seq/seq_clientmgr.c:723 [inline] > ffff8880269b0128 (&grp->list_lock){.+.+}-{3:3}, at: deliver_to_subscribers sound/core/seq/seq_clientmgr.c:763 [inline] > ffff8880269b0128 (&grp->list_lock){.+.+}-{3:3}, at: snd_seq_deliver_event+0x230/0x860 sound/core/seq/seq_clientmgr.c:813 > > other info that might help us debug this: > Possible unsafe locking scenario: > > CPU0 > ---- > lock(&grp->list_lock); > lock(&grp->list_lock); > > *** DEADLOCK *** > > May be due to missing lock nesting notation > > 3 locks held by kworker/1:3/5615: > #0: ffff88801bc0f140 ((wq_completion)events){+.+.}-{0:0}, at: process_one_work+0x12b1/0x1940 kernel/workqueue.c:3297 > #1: ffffc900039c7d08 ((work_completion)(&runtime->event_work)){+.+.}-{0:0}, at: process_one_work+0x988/0x1940 kernel/workqueue.c:3298 > #2: ffff8880269b0128 (&grp->list_lock){.+.+}-{3:3}, at: __deliver_to_subscribers sound/core/seq/seq_clientmgr.c:723 [inline] > #2: ffff8880269b0128 (&grp->list_lock){.+.+}-{3:3}, at: deliver_to_subscribers sound/core/seq/seq_clientmgr.c:763 [inline] > #2: ffff8880269b0128 (&grp->list_lock){.+.+}-{3:3}, at: snd_seq_deliver_event+0x230/0x860 sound/core/seq/seq_clientmgr.c:813 > > stack backtrace: > CPU: 1 UID: 0 PID: 5615 Comm: kworker/1:3 Not tainted syzkaller #0 PREEMPT(full) > Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 07/16/2026 > Workqueue: events snd_rawmidi_input_event_work > Call Trace: > <TASK> > __dump_stack lib/dump_stack.c:94 [inline] > dump_stack_lvl+0x100/0x190 lib/dump_stack.c:120 > print_deadlock_bug.cold+0xbd/0xca kernel/locking/lockdep.c:3041 > check_deadlock kernel/locking/lockdep.c:3093 [inline] > validate_chain kernel/locking/lockdep.c:3895 [inline] > __lock_acquire+0x1256/0x1a40 kernel/locking/lockdep.c:5237 > lock_acquire kernel/locking/lockdep.c:5868 [inline] > lock_acquire+0x1b9/0x370 kernel/locking/lockdep.c:5825 > __raw_read_lock include/linux/rwlock_api_smp.h:163 [inline] > _raw_read_lock+0x5f/0x70 kernel/locking/spinlock.c:232 > __deliver_to_subscribers sound/core/seq/seq_clientmgr.c:723 [inline] > deliver_to_subscribers sound/core/seq/seq_clientmgr.c:763 [inline] > snd_seq_deliver_event+0x230/0x860 sound/core/seq/seq_clientmgr.c:813 > snd_seq_kernel_client_dispatch+0x16f/0x1b0 sound/core/seq/seq_clientmgr.c:2439 > queue_broadcast_event.isra.0+0x143/0x1b0 sound/core/seq/seq_queue.c:585 > snd_seq_queue_process_event sound/core/seq/seq_queue.c:634 [inline] > snd_seq_control_queue+0x709/0xb70 sound/core/seq/seq_queue.c:659 > __snd_seq_deliver_single_event sound/core/seq/seq_clientmgr.c:626 [inline] > __snd_seq_deliver_single_event+0x127/0x1c0 sound/core/seq/seq_clientmgr.c:613 > _snd_seq_deliver_single_event sound/core/seq/seq_clientmgr.c:672 [inline] > snd_seq_deliver_single_event+0x31f/0x8c0 sound/core/seq/seq_clientmgr.c:687 > snd_seq_deliver_event+0x44b/0x860 sound/core/seq/seq_clientmgr.c:815 > snd_seq_kernel_client_dispatch+0x16f/0x1b0 sound/core/seq/seq_clientmgr.c:2439 > send_timer_event.isra.0+0x130/0x190 sound/core/seq/oss/seq_oss_timer.c:140 > snd_seq_oss_timer_start+0x1db/0x320 sound/core/seq/oss/seq_oss_timer.c:161 > send_midi_event sound/core/seq/oss/seq_oss_midi.c:576 [inline] > snd_seq_oss_midi_input+0x467/0xa30 sound/core/seq/oss/seq_oss_midi.c:501 > snd_seq_oss_event_input+0x194/0x250 sound/core/seq/oss/seq_oss_event.c:429 > __snd_seq_deliver_single_event sound/core/seq/seq_clientmgr.c:626 [inline] > __snd_seq_deliver_single_event+0x127/0x1c0 sound/core/seq/seq_clientmgr.c:613 > _snd_seq_deliver_single_event sound/core/seq/seq_clientmgr.c:672 [inline] > snd_seq_deliver_single_event+0x31f/0x8c0 sound/core/seq/seq_clientmgr.c:687 > __deliver_to_subscribers sound/core/seq/seq_clientmgr.c:735 [inline] > deliver_to_subscribers sound/core/seq/seq_clientmgr.c:763 [inline] > snd_seq_deliver_event+0x2c1/0x860 sound/core/seq/seq_clientmgr.c:813 > snd_seq_kernel_client_dispatch+0x16f/0x1b0 sound/core/seq/seq_clientmgr.c:2439 > snd_midi_input_event+0x32f/0x470 sound/core/seq/seq_midi.c:93 > snd_rawmidi_input_event_work+0x61/0x80 sound/core/rawmidi.c:127 > process_one_work+0xa23/0x1940 kernel/workqueue.c:3322 > process_scheduled_works kernel/workqueue.c:3405 [inline] > worker_thread+0x5ef/0xe50 kernel/workqueue.c:3486 > kthread+0x370/0x450 kernel/kthread.c:436 > ret_from_fork+0x72b/0xd50 arch/x86/kernel/process.c:158 > ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245 > </TASK> > > > --- > This report is generated by a bot. It may contain errors. > See https://goo.gl/tpsmEJ for more information about syzbot. > syzbot engineers can be reached at [email protected]. > > syzbot will keep track of this issue. See: > https://goo.gl/tpsmEJ#status for how to communicate with syzbot. > > If the report is already addressed, let syzbot know by replying with: > #syz fix: exact-commit-title > > If you want to overwrite report's subsystems, reply with: > #syz set subsystems: new-subsystem > (See the list of subsystem names on the web dashboard) > > If the report is a duplicate of another one, reply with: > #syz dup: exact-subject-of-another-report > > If you want to undo deduplication, reply with: > #syz undup #syz fix: ALSA: seq: Use RCU for the port subscriber list