** Changed in: linux (Ubuntu Focal)
   Importance: Undecided => Medium

** Changed in: linux (Ubuntu Jammy)
   Importance: Undecided => Medium

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to systemd in Ubuntu.
https://bugs.launchpad.net/bugs/1856871

Title:
  i/o error if next unused loop device is queried

Status in linux package in Ubuntu:
  Fix Released
Status in parted package in Ubuntu:
  Invalid
Status in snapd package in Ubuntu:
  Invalid
Status in systemd package in Ubuntu:
  Invalid
Status in udev package in Ubuntu:
  Invalid
Status in linux source package in Focal:
  In Progress
Status in linux source package in Jammy:
  Fix Released

Bug description:
  
  [Impact]

  * There's an I/O error on fsync() in a detached loop device if it has
  been previously attached. The issue is that write cache is enabled in
  the attach path in loop_configure() but it isn't disabled in the detach
  path; thus it remains enabled in the block device regardless of whether
  it is attached or not.

  * fsync() on detached loop devices can be called by partition tools and
  commands run by sosreport, so the unexpected kernel error message might
  surprise users or even distract from the actual issue being
  investigatedr. It might also trigger alerts in
  logging/monitoring/alerting stacks

  [Fix]

  * Disable write cache in the detach path

  [Test Plan]

  * Attach and detach an image to a loop device and test fsync return
  value aterwards

  # DEV=/dev/loop7

  # IMG=/tmp/image
  # truncate --size 1M $IMG

  # losetup $DEV $IMG
  # losetup -d $DEV

  Before:
      # strace -e fsync parted -s $DEV print 2>&1 | grep fsync
      fsync(3)                                = -1 EIO (Input/output error)
      Warning: Error fsyncing/closing /dev/loop7: Input/output error
      [  982.529929] blk_update_request: I/O error, dev loop7, sector 0 op 
0x1:(WRITE) flags 0x800 phys_seg 0 prio class 0

  After:
      # strace -e fsync parted -s $DEV print 2>&1 | grep fsync
      fsync(3)                                = 0

  [Where problems could occur]

  * The detach path for block devices is modified. Worst case scenario
  would be an error when detaching loop devices.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1856871/+subscriptions


-- 
Mailing list: https://launchpad.net/~touch-packages
Post to     : touch-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to