This issue appears to be an upstream bug, since the bug still exists in 
mainline without a revert. Would it be possible for you to open an upstream bug 
report[0] and maybe ping the patch author? 
 That will allow the upstream Developers to examine the issue, and may provide 
a quicker resolution to the bug.

Please follow the instructions on the wiki page[0]. The first step is to
email the appropriate mailing list. If no response is received, then a
bug may be opened on bugzilla.kernel.org.

Once this bug is reported upstream, please add the tag: 'kernel-bug-
reported-upstream'.

[0] https://wiki.ubuntu.com/Bugs/Upstream/kernel


** Changed in: linux (Ubuntu Bionic)
       Status: Confirmed => Triaged

-- 
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/1765998

Title:
  FS access deadlock with btrfs quotas enabled

Status in linux package in Ubuntu:
  Triaged
Status in linux source package in Bionic:
  Triaged

Bug description:
  I'm running into an issue on Ubuntu Bionic (but not Xenial) where
  shortly after boot, under heavy load from many LXD containers starting
  at once, access to the btrfs filesystem that the containers are on
  deadlocks.

  The issue is quite hard to reproduce on other systems, quite likely
  related to the size of the filesystem involved (4 devices with a total
  of 8TB, millions of files, ~20 subvolumes with tens of snapshots each)
  and the access pattern from many LXD containers at once. It definitely
  goes away when disabling btrfs quotas though. Another prerequisite to
  trigger this bug may be the container subvolumes sharing extents (from
  their parent image or due to deduplication).

  I can only reliably reproduce it on a production system that I can only do 
very limited testing on, however I have been able to gather the following 
information:
  - Many threads are stuck, trying to aquire locks on various tree roots, which 
are never released by their current holders.
  - There always seem to be (at least) two threads executing rmdir syscalls 
which are creating the circular dependency: One of them is in btrfs_cow_block 
=> ... => btrfs_qgroup_trace_extent_post => ... => find_parent_nodes and wants 
to acquire a lock that was already aquired by btrfs_search_slot of the other 
rmdir.
  - Reverting this patch seems to prevent it from happening: 
https://patchwork.kernel.org/patch/9573267/

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1765998/+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

Reply via email to