This bug is missing log files that will aid in diagnosing the problem. While running an Ubuntu kernel (not a mainline or third-party kernel) please enter the following command in a terminal window:
apport-collect 1823972 and then change the status of the bug to 'Confirmed'. If, due to the nature of the issue you have encountered, you are unable to run this command, please add a comment stating that fact and change the bug status to 'Confirmed'. This change has been made by an automated script, maintained by the Ubuntu Kernel Team. ** Changed in: linux (Ubuntu) Status: New => Incomplete ** Tags added: xenial -- You received this bug notification because you are a member of Kernel Packages, which is subscribed to linux in Ubuntu. https://bugs.launchpad.net/bugs/1823972 Title: bionic, xenial/hwe: misses "fuse: fix initial parallel dirops" patch Status in linux package in Ubuntu: Incomplete Bug description: Hello up there, We were reported about a deadlock in the kernel while using a FUSE-based filesystem on Ubuntu. The kernel in question is Ubuntu-hwe-4.15.0-47.50~16.04.1 from Xenial/HWE. We tracked this bug to the fact that 4.15.x kernel in Ubuntu does not include the following patch, in despite the patch being marked as needed for v4.7+ stable kernels: https://git.kernel.org/linus/63576c13bd Please see the following go-fuse issue for full details: https://github.com/hanwen/go-fuse/issues/281#issuecomment-480008562 The bug is potentially applicable to libfuse users too since libfuse by default enables parallel dirops whenever kernel claims support for it, which libfuse maintained confirmed: https://github.com/hanwen/go-fuse/issues/281#issuecomment-480013202 https://github.com/hanwen/go-fuse/issues/281#issuecomment-480510381 We tested that cherry-picking 63576c13bd into 4.15.x series makes the problem go away: https://github.com/hanwen/go-fuse/issues/281#issuecomment-480499969 So please include https://git.kernel.org/linus/63576c13bd into Ubuntu 4.15.x kernel series which are bionic/master and xenial/hwe, and which currently don't have this patch. -------- Here is a full list of FUSE patches marked to be needed in stable kernels starting from v4.15: kirr@deco:~/src/linux/linux$ git log --oneline v4.15..v5.1-rc3 --grep="stable@" -- fs/fuse/ a2ebba824106 fuse: decrement NR_WRITEBACK_TEMP on the right page 9509941e9c53 fuse: call pipe_buf_release() under pipe lock 8a3177db59cd cuse: fix ioctl 97e1532ef81a fuse: handle zero sized retrieve correctly 2e64ff154ce6 fuse: continue to send FUSE_RELEASEDIR when FUSE_OPEN returns ENOSYS ebacb8127359 fuse: fix use-after-free in fuse_direct_IO() 2d84a2d19b61 fuse: fix possibly missed wake-up after abort 7fabaf303458 fuse: fix leaked notify reply 908a572b80f6 fuse: fix blocked_waitq wakeup 4c316f2f3ff3 fuse: set FR_SENT while locked d2d2d4fb1f54 fuse: Fix use-after-free in fuse_dev_do_write() bc78abbd55dd fuse: Fix use-after-free in fuse_dev_do_read() a2477b0e67c5 fuse: Don't access pipe->buffers without pipe_lock() 63576c13bd17 fuse: fix initial parallel dirops e8f3bd773d22 fuse: Fix oops at process_init_reply() b8f95e5d13f5 fuse: umount should wait for all requests 45ff350bbd9d fuse: fix unlocked access to processing queue 87114373ea50 fuse: fix double request_end() 543b8f8662fe (tag: fuse-update-4.18) fuse: don't keep dead fuse_conn at fuse_fill_super(). 6becdb601bae fuse: fix control dir setup and teardown 8a301eb16d99 fuse: fix congested state leak on aborted connections df0e91d48827 fuse: atomic_o_trunc should truncate pagecache Among those only 8a3177db59cd and 2d84a2d19b61 should not be applied to 4.15.x becuase they cure a problem introduced in a later kernel (please see got log without --oneline for stable@ details) However both bionic and xenial/hwe has much less fuse patches applied: kirr@deco:~/src/linux/linux$ git log --oneline v4.15..bionic/master -- fs/fuse/ e992e3521885 fuse: fix control dir setup and teardown f3a3e0537dcd fuse: don't keep dead fuse_conn at fuse_fill_super(). 840c77082f93 fuse: atomic_o_trunc should truncate pagecache c0e31b214498 fuse: fix congested state leak on aborted connections 45f23c59120f UBUNTU: SAUCE: (namespace) fuse: Allow user namespace mounts 1223588451c6 UBUNTU: SAUCE: (namespace) fuse: Restrict allow_other to the superblock's namespace or a descendant b4d1889491a0 UBUNTU: SAUCE: (namespace) fuse: Support fuse filesystems outside of init_user_ns kirr@deco:~/src/linux/linux$ git log --oneline v4.15..xenial/hwe -- fs/fuse/ e992e3521885 fuse: fix control dir setup and teardown f3a3e0537dcd fuse: don't keep dead fuse_conn at fuse_fill_super(). 840c77082f93 fuse: atomic_o_trunc should truncate pagecache c0e31b214498 fuse: fix congested state leak on aborted connections 45f23c59120f UBUNTU: SAUCE: (namespace) fuse: Allow user namespace mounts 1223588451c6 UBUNTU: SAUCE: (namespace) fuse: Restrict allow_other to the superblock's namespace or a descendant b4d1889491a0 UBUNTU: SAUCE: (namespace) fuse: Support fuse filesystems outside of init_user_ns which suggests that other FUSE fixes should be cherry-picked too. Please consider cherry-picking those additional patches too. They are all in upstream kernel stable series, e.g. stable/linux-4.14.y has them: kirr@deco:~/src/linux/linux$ git log --oneline v4.14..stable/linux-4.14.y -- fs/fuse/ 266a69895b89 fuse: handle zero sized retrieve correctly b928e93d864c fuse: decrement NR_WRITEBACK_TEMP on the right page 65f222bb370e fuse: call pipe_buf_release() under pipe lock c1149b873482 fuse: continue to send FUSE_RELEASEDIR when FUSE_OPEN returns ENOSYS 6ceec07cc84a fuse: fix leaked notify reply a42d933dc281 fuse: fix use-after-free in fuse_direct_IO() 78da72ee42d8 fuse: set FR_SENT while locked f6f21a2b70c6 fuse: fix blocked_waitq wakeup ab962e91008a fuse: Fix use-after-free in fuse_dev_do_write() d94b3a2375cb fuse: Fix use-after-free in fuse_dev_do_read() e8a3f3a03655 fuse: Add missed unlock_page() to fuse_readpages_fill() ff4a71855d0a fuse: Fix oops at process_init_reply() 973206923812 fuse: umount should wait for all requests fc17d7519e8e fuse: fix unlocked access to processing queue cfb6eca6e4bb fuse: fix double request_end() 7d392674443c fuse: fix initial parallel dirops eaebcf902ae0 fuse: Don't access pipe->buffers without pipe_lock() 69829f749a43 fuse: fix control dir setup and teardown 3a37d85a90da fuse: don't keep dead fuse_conn at fuse_fill_super(). 2f7bf369b5f8 fuse: atomic_o_trunc should truncate pagecache 02832578eb9d fuse: fix congested state leak on aborted connections and it is just that stable/linux-4.15.y stopped being maintained by Greg KH. Thanks beforehand, Kirill To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1823972/+subscriptions -- Mailing list: https://launchpad.net/~kernel-packages Post to : kernel-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~kernel-packages More help : https://help.launchpad.net/ListHelp