Closed snajpa closed 1 year ago
[ 43.166794] ====================================================== [ 43.166794] WARNING: possible circular locking dependency detected [ 43.166796] 5.7.8 #1-NixOS Tainted: G OE [ 43.166796] ------------------------------------------------------ [ 43.166798] init/1211 is trying to acquire lock: [ 43.166799] ffff8e85b4b728b8 (&zp->z_lock){+.+.}-{3:3}, at: zfs_dirty_inode+0x12d/0x3a0 [zfs] [ 43.166918] [ 43.166918] but task is already holding lock: [ 43.166919] ffff8e859a5a22f8 (&mm->mmap_sem#2){++++}-{3:3}, at: vm_mmap_pgoff+0xad/0x120 [ 43.166925] [ 43.166925] which lock already depends on the new lock. [ 43.166925] [ 43.166925] [ 43.166925] the existing dependency chain (in reverse order) is: [ 43.166926] [ 43.166926] -> #8 (&mm->mmap_sem#2){++++}-{3:3}: [ 43.166931] down_write+0x40/0x110 [ 43.166933] mpol_rebind_mm+0x1e/0x50 [ 43.166935] cpuset_attach+0x17f/0x230 [ 43.166937] cgroup_migrate_execute+0x404/0x4c0 [ 43.166939] cgroup_attach_task+0x238/0x3f0 [ 43.166941] __cgroup1_procs_write.constprop.0+0x109/0x150 [ 43.166943] cgroup_file_write+0x95/0x220 [ 43.166945] kernfs_fop_write+0xcf/0x1c0 [ 43.166949] vfs_write+0xde/0x1d0 [ 43.166950] ksys_write+0x68/0xe0 [ 43.166954] do_syscall_64+0x56/0x200 [ 43.166957] entry_SYSCALL_64_after_hwframe+0x49/0xb3 [ 43.166958] [ 43.166958] -> #7 (&cpuset_rwsem){++++}-{0:0}: [ 43.166962] percpu_down_write+0x44/0x130 [ 43.166963] cpuset_css_online+0x2b/0x3a0 [ 43.166965] online_css+0x29/0x90 [ 43.166967] cgroup_apply_control_enable+0x267/0x5c0 [ 43.166969] cgroup_mkdir+0x30d/0x520 [ 43.166971] kernfs_iop_mkdir+0x5a/0x80 [ 43.166974] vfs_mkdir+0x10d/0x1e0 [ 43.166976] do_mkdirat+0xec/0x120 [ 43.166978] do_syscall_64+0x56/0x200 [ 43.166980] entry_SYSCALL_64_after_hwframe+0x49/0xb3 [ 43.166981] [ 43.166981] -> #6 (cpu_hotplug_lock){++++}-{0:0}: [ 43.166985] cpus_read_lock+0x39/0xd0 [ 43.166987] kmem_cache_create_usercopy+0x28/0x220 [ 43.166988] kmem_cache_create+0x12/0x20 [ 43.166991] bioset_init+0x161/0x2c0 [ 43.166995] init_bio+0xa4/0xcd [ 43.166996] do_one_initcall+0x5d/0x330 [ 43.167000] kernel_init_freeable+0x208/0x268 [ 43.167003] kernel_init+0xa/0x101 [ 43.167005] ret_from_fork+0x3a/0x50 [ 43.167006] [ 43.167006] -> #5 (bio_slab_lock){+.+.}-{3:3}: [ 43.167009] __mutex_lock+0xaa/0x9c0 [ 43.167010] bioset_init+0xbc/0x2c0 [ 43.167012] __blk_alloc_queue+0x74/0x310 [ 43.167015] blk_mq_init_queue_data+0x1b/0x60 [ 43.167019] loop_add+0xfb/0x2a0 [loop] [ 43.167023] HUF_fillDTableX4Level2+0x12f/0x130 [zstd_decompress] [ 43.167025] do_one_initcall+0x5d/0x330 [ 43.167027] do_init_module+0x5c/0x230 [ 43.167029] load_module+0x2659/0x2890 [ 43.167030] __do_sys_init_module+0x164/0x190 [ 43.167032] do_syscall_64+0x56/0x200 [ 43.167034] entry_SYSCALL_64_after_hwframe+0x49/0xb3 [ 43.167035] [ 43.167035] -> #4 (loop_ctl_mutex){+.+.}-{3:3}: [ 43.167042] __mutex_lock+0xaa/0x9c0 [ 43.167044] lo_open+0x19/0x60 [loop] [ 43.167047] __blkdev_get+0xed/0x580 [ 43.167049] blkdev_get+0x38/0x150 [ 43.167051] do_dentry_open+0x14c/0x3c0 [ 43.167052] path_openat+0x766/0xa50 [ 43.167053] do_filp_open+0x91/0x100 [ 43.167055] do_sys_openat2+0x215/0x2d0 [ 43.167056] do_sys_open+0x44/0x80 [ 43.167058] do_syscall_64+0x56/0x200 [ 43.167060] entry_SYSCALL_64_after_hwframe+0x49/0xb3 [ 43.167061] [ 43.167061] -> #3 (&bdev->bd_mutex){+.+.}-{3:3}: [ 43.167064] __mutex_lock+0xaa/0x9c0 [ 43.167065] __blkdev_get+0x7a/0x580 [ 43.167067] blkdev_get+0x85/0x150 [ 43.167069] blkdev_get_by_path+0x46/0x80 [ 43.167110] vdev_disk_open+0x209/0x5d0 [zfs] [ 43.167190] vdev_open+0xa5/0x6d0 [zfs] [ 43.167269] vdev_open_child+0x1e/0x40 [zfs] [ 43.167313] taskq_thread+0x313/0x6d0 [spl] [ 43.167318] kthread+0x130/0x170 [ 43.167320] ret_from_fork+0x3a/0x50 [ 43.167322] [ 43.167322] -> #2 (&vd->vd_lock){++++}-{3:3}: [ 43.167324] down_read+0x41/0x200 [ 43.167365] vdev_disk_io_start+0x6b/0xb00 [zfs] [ 43.167448] zio_vdev_io_start+0xed/0x2e0 [zfs] [ 43.167536] zio_nowait+0xb2/0x170 [zfs] [ 43.167615] vdev_mirror_io_start+0x90/0x180 [zfs] [ 43.167695] zio_vdev_io_start+0x264/0x2e0 [zfs] [ 43.167775] zio_nowait+0xb2/0x170 [zfs] [ 43.167841] arc_read+0xcb1/0x1b50 [zfs] [ 43.167895] dbuf_read_impl.constprop.0+0x467/0x9c0 [zfs] [ 43.167950] dbuf_read+0x10a/0x750 [zfs] [ 43.168006] dmu_buf_hold_by_dnode+0xd8/0x1b0 [zfs] [ 43.168075] zap_get_leaf_byblk.isra.0+0x64/0x3c0 [zfs] [ 43.168154] zap_deref_leaf+0xa1/0xf0 [zfs] [ 43.168233] fzap_lookup+0x6f/0x140 [zfs] [ 43.168311] zap_lookup_impl+0x5a/0x1c0 [zfs] [ 43.168390] zap_lookup_norm+0x83/0xd0 [zfs] [ 43.168483] zap_lookup+0x12/0x20 [zfs] [ 43.168583] spa_dir_prop+0x37/0x80 [zfs] [ 43.168681] spa_ld_trusted_config+0x4a/0x740 [zfs] [ 43.168771] spa_ld_mos_with_trusted_config+0x2d/0x80 [zfs] [ 43.168864] spa_load+0x82/0x13c0 [zfs] [ 43.168953] spa_tryimport+0x145/0x5e0 [zfs] [ 43.169031] zfs_ioc_pool_tryimport+0x63/0xc0 [zfs] [ 43.169111] zfsdev_ioctl_common+0x6a0/0x830 [zfs] [ 43.169190] zfsdev_ioctl+0x53/0xe0 [zfs] [ 43.169230] ksys_ioctl+0x87/0xc0 [ 43.169232] __x64_sys_ioctl+0x16/0x20 [ 43.169234] do_syscall_64+0x56/0x200 [ 43.169236] entry_SYSCALL_64_after_hwframe+0x49/0xb3 [ 43.169237] [ 43.169237] -> #1 (&zap->zap_rwlock){++++}-{3:3}: [ 43.169241] down_write+0x40/0x110 [ 43.169281] zap_lockdir_impl+0x297/0x830 [zfs] [ 43.169359] zap_lockdir+0x8c/0xb0 [zfs] [ 43.169438] zap_add+0x51/0xa0 [zfs] [ 43.169524] zfs_link_create+0x175/0x680 [zfs] [ 43.169603] zfs_create+0x6fb/0x9d0 [zfs] [ 43.169682] zpl_create+0xb4/0x180 [zfs] [ 43.169723] lookup_open+0x53f/0x6b0 [ 43.169724] path_openat+0x2c1/0xa50 [ 43.169726] do_filp_open+0x91/0x100 [ 43.169727] do_sys_openat2+0x215/0x2d0 [ 43.169728] do_sys_open+0x44/0x80 [ 43.169730] do_syscall_64+0x56/0x200 [ 43.169732] entry_SYSCALL_64_after_hwframe+0x49/0xb3 [ 43.169734] [ 43.169734] -> #0 (&zp->z_lock){+.+.}-{3:3}: [ 43.169737] __lock_acquire+0x12c3/0x24f0 [ 43.169738] lock_acquire+0xad/0x390 [ 43.169740] __mutex_lock+0xaa/0x9c0 [ 43.169780] zfs_dirty_inode+0x12d/0x3a0 [zfs] [ 43.169858] zpl_dirty_inode+0x25/0x40 [zfs] [ 43.169899] __mark_inode_dirty+0x2c3/0x5d0 [ 43.169900] generic_update_time+0x9d/0xc0 [ 43.169902] touch_atime+0xa1/0xd0 [ 43.169904] generic_file_mmap+0x3f/0x60 [ 43.169944] zpl_mmap+0x7e/0x160 [zfs] [ 43.169985] mmap_region+0x3f6/0x640 [ 43.169986] do_mmap+0x36d/0x570 [ 43.169988] vm_mmap_pgoff+0xd7/0x120 [ 43.169990] elf_map+0x8a/0x120 [ 43.169992] load_elf_binary+0x5e5/0x16c0 [ 43.169995] search_binary_handler+0x71/0x240 [ 43.169997] __do_execve_file.isra.0+0x615/0xab0 [ 43.169998] __x64_sys_execve+0x35/0x40 [ 43.170000] do_syscall_64+0x56/0x200 [ 43.170003] entry_SYSCALL_64_after_hwframe+0x49/0xb3 [ 43.170004] [ 43.170004] other info that might help us debug this: [ 43.170004] [ 43.170005] Chain exists of: [ 43.170005] &zp->z_lock --> &cpuset_rwsem --> &mm->mmap_sem#2 [ 43.170005] [ 43.170017] Possible unsafe locking scenario: [ 43.170017] [ 43.170018] CPU0 CPU1 [ 43.170018] ---- ---- [ 43.170019] lock(&mm->mmap_sem#2); [ 43.170020] lock(&cpuset_rwsem); [ 43.170021] lock(&mm->mmap_sem#2); [ 43.170023] lock(&zp->z_lock); [ 43.170024] [ 43.170024] *** DEADLOCK *** [ 43.170024] [ 43.170025] 2 locks held by init/1211: [ 43.170025] #0: ffff8e859a5a22f8 (&mm->mmap_sem#2){++++}-{3:3}, at: vm_mmap_pgoff+0xad/0x120 [ 43.170029] #1: ffff8e859797d480 (sb_writers#12){.+.+}-{0:0}, at: touch_atime+0x60/0xd0 [ 43.170033] [ 43.170033] stack backtrace: [ 43.170035] CPU: 0 PID: 1 Comm: init Tainted: G OE 5.7.8 #1-NixOS [ 43.170037] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.13.0-0-gf21b5a4aeb02-prebuilt.qemu.org 04/01/2014 [ 43.170038] Call Trace: [ 43.170043] dump_stack+0x8f/0xd0 [ 43.170046] check_noncircular+0x169/0x180 [ 43.170050] __lock_acquire+0x12c3/0x24f0 [ 43.170052] ? __lock_acquire+0x156b/0x24f0 [ 43.170055] lock_acquire+0xad/0x390 [ 43.170095] ? zfs_dirty_inode+0x12d/0x3a0 [zfs] [ 43.170138] __mutex_lock+0xaa/0x9c0 [ 43.170178] ? zfs_dirty_inode+0x12d/0x3a0 [zfs] [ 43.170257] ? zfs_dirty_inode+0x12d/0x3a0 [zfs] [ 43.170297] ? _raw_spin_unlock+0x29/0x40 [ 43.170329] ? dmu_tx_assign+0x37d/0x5f0 [zfs] [ 43.170401] ? zfs_dirty_inode+0x12d/0x3a0 [zfs] [ 43.170479] zfs_dirty_inode+0x12d/0x3a0 [zfs] [ 43.170526] ? lock_acquire+0xad/0x390 [ 43.170529] ? kvm_clock_read+0x14/0x30 [ 43.170531] ? kvm_sched_clock_read+0x5/0x10 [ 43.170534] ? sched_clock+0x5/0x10 [ 43.170537] ? sched_clock_cpu+0x10/0xd0 [ 43.170578] zpl_dirty_inode+0x25/0x40 [zfs] [ 43.170619] __mark_inode_dirty+0x2c3/0x5d0 [ 43.170621] generic_update_time+0x9d/0xc0 [ 43.170623] touch_atime+0xa1/0xd0 [ 43.170625] generic_file_mmap+0x3f/0x60 [ 43.170665] zpl_mmap+0x7e/0x160 [zfs] [ 43.170706] mmap_region+0x3f6/0x640 [ 43.170709] do_mmap+0x36d/0x570 [ 43.170712] vm_mmap_pgoff+0xd7/0x120 [ 43.170716] elf_map+0x8a/0x120 [ 43.170719] load_elf_binary+0x5e5/0x16c0 [ 43.170722] ? cyc2ns_read_end+0x1/0x10 [ 43.170726] search_binary_handler+0x71/0x240 [ 43.170728] __do_execve_file.isra.0+0x615/0xab0 [ 43.170732] __x64_sys_execve+0x35/0x40 [ 43.170734] do_syscall_64+0x56/0x200 [ 43.170737] entry_SYSCALL_64_after_hwframe+0x49/0xb3 [ 43.170740] RIP: 0033:0x7fa8102c5ea7 [ 43.170746] Code: Bad RIP value. [ 43.170747] RSP: 002b:00007ffe7c6199e8 EFLAGS: 00000202 ORIG_RAX: 000000000000003b [ 43.170749] RAX: ffffffffffffffda RBX: 0000000000bd0b40 RCX: 00007fa8102c5ea7 [ 43.170750] RDX: 0000000000bd8790 RSI: 0000000000bd0b20 RDI: 0000000000bd0b40 [ 43.170751] RBP: 00007ffe7c619a40 R08: 0000000000000000 R09: 0000000000000000 [ 43.170752] R10: 0000000000bdc200 R11: 0000000000000202 R12: 0000000000bd0b20 [ 43.170753] R13: 0000000000bd8790 R14: 0000000000000001 R15: 0000000000bcdb50