syzbot


possible deadlock in pipe_lock

Status: public: reported C repro on 2019/04/14 08:51
Reported-by: syzbot+40690beda1a2266cd4b2@syzkaller.appspotmail.com
First crash: 2017d, last: 1604d
Similar bugs (8)
Kernel Title Repro Cause bisect Fix bisect Count Last Reported Patched Status
upstream possible deadlock in pipe_lock fs 50806 2319d 2367d 0/26 closed as invalid on 2018/02/14 14:20
upstream possible deadlock in pipe_lock (4) overlayfs 1 1086d 1082d 0/26 auto-closed as invalid on 2021/07/03 13:02
upstream possible deadlock in pipe_lock (2) overlayfs 3 1830d 1900d 0/26 auto-closed as invalid on 2019/10/18 15:02
linux-4.19 possible deadlock in pipe_lock (2) C error 155 415d 1582d 0/1 upstream: reported C repro on 2019/12/26 07:17
upstream possible deadlock in pipe_lock (5) overlayfs C done 5 1005d 1005d 20/26 fixed on 2021/11/10 00:50
android-49 possible deadlock in pipe_lock 5 1644d 1837d 0/3 auto-closed as invalid on 2020/02/21 12:40
linux-4.19 possible deadlock in pipe_lock C done 2 1824d 1827d 1/1 fixed on 2019/11/29 10:34
upstream possible deadlock in pipe_lock (3) overlayfs C inconclusive done 4 1544d 1581d 15/26 fixed on 2020/08/18 22:40

Sample crash report:
======================================================
[ INFO: possible circular locking dependency detected ]
4.4.174+ #4 Not tainted
-------------------------------------------------------
syz-executor290/2085 is trying to acquire lock:
 (&pipe->mutex/1){+.+.+.}, at: [<ffffffff814af8b3>] pipe_lock_nested fs/pipe.c:65 [inline]
 (&pipe->mutex/1){+.+.+.}, at: [<ffffffff814af8b3>] pipe_lock+0x63/0x80 fs/pipe.c:73

but task is already holding lock:
 (sb_writers#4){.+.+.+}, at: [<ffffffff81537eed>] file_start_write include/linux/fs.h:2543 [inline]
 (sb_writers#4){.+.+.+}, at: [<ffffffff81537eed>] do_splice fs/splice.c:1403 [inline]
 (sb_writers#4){.+.+.+}, at: [<ffffffff81537eed>] SYSC_splice fs/splice.c:1707 [inline]
 (sb_writers#4){.+.+.+}, at: [<ffffffff81537eed>] SyS_splice+0xf2d/0x13a0 fs/splice.c:1690

which lock already depends on the new lock.


the existing dependency chain (in reverse order) is:

       [<ffffffff81205f6e>] lock_acquire+0x15e/0x450 kernel/locking/lockdep.c:3592
       [<ffffffff8149ea2f>] percpu_down_read include/linux/percpu-rwsem.h:26 [inline]
       [<ffffffff8149ea2f>] __sb_start_write+0x1af/0x310 fs/super.c:1239
       [<ffffffff816c3af4>] sb_start_write include/linux/fs.h:1517 [inline]
       [<ffffffff816c3af4>] ext4_run_li_request fs/ext4/super.c:2685 [inline]
       [<ffffffff816c3af4>] ext4_lazyinit_thread fs/ext4/super.c:2784 [inline]
       [<ffffffff816c3af4>] ext4_lazyinit_thread+0x1e4/0x7b0 fs/ext4/super.c:2760
       [<ffffffff811342c3>] kthread+0x273/0x310 kernel/kthread.c:211
       [<ffffffff82718fc5>] ret_from_fork+0x55/0x80 arch/x86/entry/entry_64.S:537

       [<ffffffff81205f6e>] lock_acquire+0x15e/0x450 kernel/locking/lockdep.c:3592
       [<ffffffff8270c191>] __mutex_lock_common kernel/locking/mutex.c:521 [inline]
       [<ffffffff8270c191>] mutex_lock_nested+0xc1/0xb80 kernel/locking/mutex.c:621
       [<ffffffff816cdacd>] ext4_register_li_request+0x2fd/0x7d0 fs/ext4/super.c:2972
       [<ffffffff816cf306>] ext4_remount+0x1366/0x1b90 fs/ext4/super.c:4922
       [<ffffffff814a1ccb>] do_remount_sb2+0x41b/0x7a0 fs/super.c:781
       [<ffffffff815028ab>] do_remount fs/namespace.c:2347 [inline]
       [<ffffffff815028ab>] do_mount+0xfdb/0x2a40 fs/namespace.c:2860
       [<ffffffff81504d00>] SYSC_mount fs/namespace.c:3063 [inline]
       [<ffffffff81504d00>] SyS_mount+0x130/0x1d0 fs/namespace.c:3041
       [<ffffffff82718ba1>] entry_SYSCALL_64_fastpath+0x1e/0x9a

       [<ffffffff81205f6e>] lock_acquire+0x15e/0x450 kernel/locking/lockdep.c:3592
       [<ffffffff8270c191>] __mutex_lock_common kernel/locking/mutex.c:521 [inline]
       [<ffffffff8270c191>] mutex_lock_nested+0xc1/0xb80 kernel/locking/mutex.c:621
       [<ffffffff816cd859>] ext4_register_li_request+0x89/0x7d0 fs/ext4/super.c:2945
       [<ffffffff816cf306>] ext4_remount+0x1366/0x1b90 fs/ext4/super.c:4922
       [<ffffffff814a1ccb>] do_remount_sb2+0x41b/0x7a0 fs/super.c:781
       [<ffffffff815028ab>] do_remount fs/namespace.c:2347 [inline]
       [<ffffffff815028ab>] do_mount+0xfdb/0x2a40 fs/namespace.c:2860
       [<ffffffff81504d00>] SYSC_mount fs/namespace.c:3063 [inline]
       [<ffffffff81504d00>] SyS_mount+0x130/0x1d0 fs/namespace.c:3041
       [<ffffffff82718ba1>] entry_SYSCALL_64_fastpath+0x1e/0x9a

       [<ffffffff81205f6e>] lock_acquire+0x15e/0x450 kernel/locking/lockdep.c:3592
       [<ffffffff827139a2>] down_read+0x42/0x60 kernel/locking/rwsem.c:22
       [<ffffffff814a1411>] iterate_supers+0xe1/0x250 fs/super.c:547
       [<ffffffff819b19f7>] selinux_complete_init+0x2f/0x31 security/selinux/hooks.c:6154
       [<ffffffff819a353d>] security_load_policy+0x69d/0x9c0 security/selinux/ss/services.c:2060
       [<ffffffff81979e55>] sel_write_load+0x175/0xf90 security/selinux/selinuxfs.c:535
       [<ffffffff81496916>] __vfs_write+0x116/0x3d0 fs/read_write.c:491
       [<ffffffff81498612>] vfs_write+0x182/0x4e0 fs/read_write.c:540
       [<ffffffff8149ac4c>] SYSC_write fs/read_write.c:587 [inline]
       [<ffffffff8149ac4c>] SyS_write+0xdc/0x1c0 fs/read_write.c:579
       [<ffffffff82718ba1>] entry_SYSCALL_64_fastpath+0x1e/0x9a

       [<ffffffff81205f6e>] lock_acquire+0x15e/0x450 kernel/locking/lockdep.c:3592
       [<ffffffff8270c191>] __mutex_lock_common kernel/locking/mutex.c:521 [inline]
       [<ffffffff8270c191>] mutex_lock_nested+0xc1/0xb80 kernel/locking/mutex.c:621
       [<ffffffff81977a39>] sel_commit_bools_write+0x89/0x260 security/selinux/selinuxfs.c:1142
       [<ffffffff81496916>] __vfs_write+0x116/0x3d0 fs/read_write.c:491
       [<ffffffff81496ce2>] __kernel_write+0x112/0x370 fs/read_write.c:513
       [<ffffffff81532e6d>] write_pipe_buf+0x15d/0x1f0 fs/splice.c:1074
       [<ffffffff81533b6e>] splice_from_pipe_feed fs/splice.c:776 [inline]
       [<ffffffff81533b6e>] __splice_from_pipe+0x37e/0x7a0 fs/splice.c:901
       [<ffffffff81536be8>] splice_from_pipe+0x108/0x170 fs/splice.c:936
       [<ffffffff81536cdc>] default_file_splice_write+0x3c/0x80 fs/splice.c:1086
       [<ffffffff81537d31>] do_splice_from fs/splice.c:1128 [inline]
       [<ffffffff81537d31>] do_splice fs/splice.c:1404 [inline]
       [<ffffffff81537d31>] SYSC_splice fs/splice.c:1707 [inline]
       [<ffffffff81537d31>] SyS_splice+0xd71/0x13a0 fs/splice.c:1690
       [<ffffffff82718ba1>] entry_SYSCALL_64_fastpath+0x1e/0x9a

       [<ffffffff81202d86>] check_prev_add kernel/locking/lockdep.c:1853 [inline]
       [<ffffffff81202d86>] check_prevs_add kernel/locking/lockdep.c:1958 [inline]
       [<ffffffff81202d86>] validate_chain kernel/locking/lockdep.c:2144 [inline]
       [<ffffffff81202d86>] __lock_acquire+0x37d6/0x4f50 kernel/locking/lockdep.c:3213
       [<ffffffff81205f6e>] lock_acquire+0x15e/0x450 kernel/locking/lockdep.c:3592
       [<ffffffff8270c191>] __mutex_lock_common kernel/locking/mutex.c:521 [inline]
       [<ffffffff8270c191>] mutex_lock_nested+0xc1/0xb80 kernel/locking/mutex.c:621
       [<ffffffff814af8b3>] pipe_lock_nested fs/pipe.c:65 [inline]
       [<ffffffff814af8b3>] pipe_lock+0x63/0x80 fs/pipe.c:73
       [<ffffffff815342e9>] iter_file_splice_write+0x179/0xb30 fs/splice.c:974
       [<ffffffff81537d31>] do_splice_from fs/splice.c:1128 [inline]
       [<ffffffff81537d31>] do_splice fs/splice.c:1404 [inline]
       [<ffffffff81537d31>] SYSC_splice fs/splice.c:1707 [inline]
       [<ffffffff81537d31>] SyS_splice+0xd71/0x13a0 fs/splice.c:1690
       [<ffffffff82718ba1>] entry_SYSCALL_64_fastpath+0x1e/0x9a

other info that might help us debug this:

Chain exists of:
 Possible unsafe locking scenario:

       CPU0                    CPU1
       ----                    ----
  lock(sb_writers#4);
                               lock(&eli->li_list_mtx);
                               lock(sb_writers#4);
  lock(&pipe->mutex/1);

 *** DEADLOCK ***

1 lock held by syz-executor290/2085:
 #0:  (sb_writers#4){.+.+.+}, at: [<ffffffff81537eed>] file_start_write include/linux/fs.h:2543 [inline]
 #0:  (sb_writers#4){.+.+.+}, at: [<ffffffff81537eed>] do_splice fs/splice.c:1403 [inline]
 #0:  (sb_writers#4){.+.+.+}, at: [<ffffffff81537eed>] SYSC_splice fs/splice.c:1707 [inline]
 #0:  (sb_writers#4){.+.+.+}, at: [<ffffffff81537eed>] SyS_splice+0xf2d/0x13a0 fs/splice.c:1690

stack backtrace:
CPU: 0 PID: 2085 Comm: syz-executor290 Not tainted 4.4.174+ #4
 0000000000000000 3e6e76746fdc743e ffff8800b64078b0 ffffffff81aad1a1
 ffffffff84057a80 ffff8800b722df00 ffffffff83abd2b0 ffffffff83abc380
 ffffffff83ac8080 ffff8800b6407900 ffffffff813abcda ffffffff83e1ee80
Call Trace:
 [<ffffffff81aad1a1>] __dump_stack lib/dump_stack.c:15 [inline]
 [<ffffffff81aad1a1>] dump_stack+0xc1/0x120 lib/dump_stack.c:51
 [<ffffffff813abcda>] print_circular_bug.cold+0x2f7/0x44e kernel/locking/lockdep.c:1226
 [<ffffffff81202d86>] check_prev_add kernel/locking/lockdep.c:1853 [inline]
 [<ffffffff81202d86>] check_prevs_add kernel/locking/lockdep.c:1958 [inline]
 [<ffffffff81202d86>] validate_chain kernel/locking/lockdep.c:2144 [inline]
 [<ffffffff81202d86>] __lock_acquire+0x37d6/0x4f50 kernel/locking/lockdep.c:3213
 [<ffffffff81205f6e>] lock_acquire+0x15e/0x450 kernel/locking/lockdep.c:3592
 [<ffffffff8270c191>] __mutex_lock_common kernel/locking/mutex.c:521 [inline]
 [<ffffffff8270c191>] mutex_lock_nested+0xc1/0xb80 kernel/locking/mutex.c:621
 [<ffffffff814af8b3>] pipe_lock_nested fs/pipe.c:65 [inline]
 [<ffffffff814af8b3>] pipe_lock+0x63/0x80 fs/pipe.c:73
 [<ffffffff815342e9>] iter_file_splice_write+0x179/0xb30 fs/splice.c:974
 [<ffffffff81537d31>] do_splice_from fs/splice.c:1128 [inline]
 [<ffffffff81537d31>] do_splice fs/splice.c:1404 [inline]
 [<ffffffff81537d31>] SYSC_splice fs/splice.c:1707 [inline]
 [<ffffffff81537d31>] SyS_splice+0xd71/0x13a0 fs/splice.c:1690
 [<ffffffff82718ba1>] entry_SYSCALL_64_fastpath+0x1e/0x9a

Crashes (82):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2019/08/13 15:55 https://android.googlesource.com/kernel/common android-4.4 62872f952d6b 8620c2c2 .config console log report syz C ci-android-44-kasan-gce
2019/08/13 16:29 https://android.googlesource.com/kernel/common android-4.4 62872f952d6b 8620c2c2 .config console log report syz C ci-android-44-kasan-gce-386
2019/11/27 11:06 https://android.googlesource.com/kernel/common android-4.4 62872f952d6b 1048481f .config console log report ci-android-44-kasan-gce
2019/11/24 17:37 https://android.googlesource.com/kernel/common android-4.4 62872f952d6b 598ca6c8 .config console log report ci-android-44-kasan-gce
2019/11/23 14:03 https://android.googlesource.com/kernel/common android-4.4 62872f952d6b 598ca6c8 .config console log report ci-android-44-kasan-gce
2019/11/13 18:57 https://android.googlesource.com/kernel/common android-4.4 62872f952d6b 048f2d49 .config console log report ci-android-44-kasan-gce
2019/11/10 00:39 https://android.googlesource.com/kernel/common android-4.4 62872f952d6b dc438b91 .config console log report ci-android-44-kasan-gce
2019/09/27 05:10 https://android.googlesource.com/kernel/common android-4.4 62872f952d6b 2f1548bc .config console log report ci-android-44-kasan-gce
2019/09/04 13:55 https://android.googlesource.com/kernel/common android-4.4 62872f952d6b 12381952 .config console log report ci-android-44-kasan-gce
2019/09/04 04:35 https://android.googlesource.com/kernel/common android-4.4 62872f952d6b 526709ff .config console log report ci-android-44-kasan-gce
2019/09/04 01:18 https://android.googlesource.com/kernel/common android-4.4 62872f952d6b 526709ff .config console log report ci-android-44-kasan-gce
2019/09/01 23:42 https://android.googlesource.com/kernel/common android-4.4 62872f952d6b bad3cce2 .config console log report ci-android-44-kasan-gce
2019/09/01 22:25 https://android.googlesource.com/kernel/common android-4.4 62872f952d6b bad3cce2 .config console log report ci-android-44-kasan-gce
2019/09/01 16:09 https://android.googlesource.com/kernel/common android-4.4 62872f952d6b bad3cce2 .config console log report ci-android-44-kasan-gce
2019/09/01 04:31 https://android.googlesource.com/kernel/common android-4.4 62872f952d6b bad3cce2 .config console log report ci-android-44-kasan-gce
2019/08/31 19:45 https://android.googlesource.com/kernel/common android-4.4 62872f952d6b fd37b39e .config console log report ci-android-44-kasan-gce
2019/08/31 11:11 https://android.googlesource.com/kernel/common android-4.4 62872f952d6b fd37b39e .config console log report ci-android-44-kasan-gce
2019/08/31 08:55 https://android.googlesource.com/kernel/common android-4.4 62872f952d6b fd37b39e .config console log report ci-android-44-kasan-gce
2019/08/31 02:44 https://android.googlesource.com/kernel/common android-4.4 62872f952d6b fd37b39e .config console log report ci-android-44-kasan-gce
2019/08/31 00:10 https://android.googlesource.com/kernel/common android-4.4 62872f952d6b fd37b39e .config console log report ci-android-44-kasan-gce
2019/08/30 14:56 https://android.googlesource.com/kernel/common android-4.4 62872f952d6b fd37b39e .config console log report ci-android-44-kasan-gce
2019/03/22 04:03 https://android.googlesource.com/kernel/common android-4.4 62872f952d6b dce6e62f .config console log report ci-android-44-kasan-gce
2019/03/15 18:44 https://android.googlesource.com/kernel/common android-4.4 62872f952d6b bab43553 .config console log report ci-android-44-kasan-gce
2019/01/25 06:31 https://android.googlesource.com/kernel/common android-4.4 d0c3914ffbe4 bfab9cd8 .config console log report ci-android-44-kasan-gce
2018/11/03 20:41 https://android.googlesource.com/kernel/common android-4.4 c4b00eb70496 8bd6bd63 .config console log report ci-android-44-kasan-gce
2019/12/03 09:58 https://android.googlesource.com/kernel/common android-4.4 62872f952d6b ab342da3 .config console log report ci-android-44-kasan-gce-386
2019/12/02 07:52 https://android.googlesource.com/kernel/common android-4.4 62872f952d6b f879db37 .config console log report ci-android-44-kasan-gce-386
2019/12/01 12:03 https://android.googlesource.com/kernel/common android-4.4 62872f952d6b a76bf83f .config console log report ci-android-44-kasan-gce-386
2019/11/28 21:10 https://android.googlesource.com/kernel/common android-4.4 62872f952d6b 46869e3e .config console log report ci-android-44-kasan-gce-386
2019/11/28 09:17 https://android.googlesource.com/kernel/common android-4.4 62872f952d6b 0d63f89c .config console log report ci-android-44-kasan-gce-386
2019/11/25 08:41 https://android.googlesource.com/kernel/common android-4.4 62872f952d6b 598ca6c8 .config console log report ci-android-44-kasan-gce-386
2019/11/25 03:56 https://android.googlesource.com/kernel/common android-4.4 62872f952d6b 598ca6c8 .config console log report ci-android-44-kasan-gce-386
2019/11/24 06:21 https://android.googlesource.com/kernel/common android-4.4 62872f952d6b 598ca6c8 .config console log report ci-android-44-kasan-gce-386
2019/11/22 18:23 https://android.googlesource.com/kernel/common android-4.4 62872f952d6b 598ca6c8 .config console log report ci-android-44-kasan-gce-386
2019/11/21 21:10 https://android.googlesource.com/kernel/common android-4.4 62872f952d6b 8098ea0f .config console log report ci-android-44-kasan-gce-386
2019/11/17 16:23 https://android.googlesource.com/kernel/common android-4.4 62872f952d6b d5696d51 .config console log report ci-android-44-kasan-gce-386
2019/10/19 00:22 https://android.googlesource.com/kernel/common android-4.4 62872f952d6b 8c88c9c1 .config console log report ci-android-44-kasan-gce-386
2019/10/16 09:03 https://android.googlesource.com/kernel/common android-4.4 62872f952d6b d4ea592f .config console log report ci-android-44-kasan-gce-386
2019/10/13 12:24 https://android.googlesource.com/kernel/common android-4.4 62872f952d6b 2f661ec4 .config console log report ci-android-44-kasan-gce-386
2019/10/01 12:27 https://android.googlesource.com/kernel/common android-4.4 62872f952d6b c7a4fb99 .config console log report ci-android-44-kasan-gce-386
2019/10/01 02:19 https://android.googlesource.com/kernel/common android-4.4 62872f952d6b c7a4fb99 .config console log report ci-android-44-kasan-gce-386
2019/09/30 19:17 https://android.googlesource.com/kernel/common android-4.4 62872f952d6b c7a4fb99 .config console log report ci-android-44-kasan-gce-386
2019/09/30 18:32 https://android.googlesource.com/kernel/common android-4.4 62872f952d6b c7a4fb99 .config console log report ci-android-44-kasan-gce-386
2019/09/11 07:47 https://android.googlesource.com/kernel/common android-4.4 62872f952d6b a60cb4cd .config console log report ci-android-44-kasan-gce-386
2019/09/09 07:04 https://android.googlesource.com/kernel/common android-4.4 62872f952d6b a60cb4cd .config console log report ci-android-44-kasan-gce-386
2019/09/07 15:57 https://android.googlesource.com/kernel/common android-4.4 62872f952d6b a60cb4cd .config console log report ci-android-44-kasan-gce-386
2019/09/06 07:50 https://android.googlesource.com/kernel/common android-4.4 62872f952d6b 040fda58 .config console log report ci-android-44-kasan-gce-386
2019/09/05 03:44 https://android.googlesource.com/kernel/common android-4.4 62872f952d6b 040fda58 .config console log report ci-android-44-kasan-gce-386
2019/08/31 16:05 https://android.googlesource.com/kernel/common android-4.4 62872f952d6b fd37b39e .config console log report ci-android-44-kasan-gce-386
2019/03/06 11:41 https://android.googlesource.com/kernel/common android-4.4 62872f952d6b 05cf83bf .config console log report ci-android-44-kasan-gce-386
2019/01/28 02:13 https://android.googlesource.com/kernel/common android-4.4 d0c3914ffbe4 c73f090a .config console log report ci-android-44-kasan-gce-386
2019/01/06 02:29 https://android.googlesource.com/kernel/common android-4.4 d08574b6f0ae 53be0a37 .config console log report ci-android-44-kasan-gce-386
2019/01/05 07:53 https://android.googlesource.com/kernel/common android-4.4 d08574b6f0ae 53be0a37 .config console log report ci-android-44-kasan-gce-386
2018/12/28 17:29 https://android.googlesource.com/kernel/common android-4.4 dfca92bab267 fc6ae81a .config console log report ci-android-44-kasan-gce-386
2018/12/18 04:57 https://android.googlesource.com/kernel/common android-4.4 b95a8c048a28 def91db3 .config console log report ci-android-44-kasan-gce-386
2018/12/04 15:44 https://android.googlesource.com/kernel/common android-4.4 d40633ce0827 6ad0ae61 .config console log report ci-android-44-kasan-gce-386
2018/11/16 20:59 https://android.googlesource.com/kernel/common android-4.4 498bf61266f1 b08ee62a .config console log report ci-android-44-kasan-gce-386
2018/11/12 12:00 https://android.googlesource.com/kernel/common android-4.4 0ca3fcabdc05 7b5f8621 .config console log report ci-android-44-kasan-gce-386
2018/11/05 20:08 https://android.googlesource.com/kernel/common android-4.4 3411c22ecc5a 8bd6bd63 .config console log report ci-android-44-kasan-gce-386
2018/10/16 17:58 https://android.googlesource.com/kernel/common android-4.4 8e7f196597f3 1ba7fd7e .config console log report ci-android-44-kasan-gce-386
* Struck through repros no longer work on HEAD.