** Description changed:

  [Impact]
  
  Starting with 5.13 we've incorrectly dropped the following sauce patch:
  
-     UBUNTU: SAUCE: overlayfs: fix incorrect mnt_id of files opened from
+     UBUNTU: SAUCE: overlayfs: fix incorrect mnt_id of files opened from
  map_files
  
  This patch seems to be required to use overlayfs on top of shiftfs and
  without this patch we may break containers that rely on shiftfs (using
  zfs/ceph as storage pool w/ shiftfs enabled).
  
  [Test case]
  
- No specific test case provided.
+ The following script can be used to trigger the issue:
+   #!/bin/bash
+ 
+   cat > test.py << EOF
+   import sys
+ 
+   f = open("/proc/self/maps")
+ 
+   for l in f.readlines():
+     if "python" not in l:
+       continue
+     print(l)
+     s = l.split()
+     start, end = s[0].split("-")
+     fname = s[-1]
+     print(start, end, fname)
+     break
+   else:
+     sys.exit(1)
+ 
+   test_file1 = open(fname)
+   test_file2 = open("/proc/self/map_files/%s-%s" % (start, end))
+ 
+   fdinfo1 = open("/proc/self/fdinfo/%d" % test_file1.fileno()).read()
+   fdinfo2 = open("/proc/self/fdinfo/%d" % test_file2.fileno()).read()
+ 
+   if fdinfo1 != fdinfo2:
+     print("FAIL")
+     print(test_file1)
+     print(fdinfo1)
+     print(test_file2)
+     print(fdinfo2)
+     sys.exit(1)
+   print("PASS")
+   EOF
+   sudo docker run -it --privileged --rm -v `pwd`:/mnt python python 
/mnt/test.py
  
  [Fix]
  
  The original SAUCE patch relies on AUFS in order to use vma->vm_prfile,
  but we're not providing AUFS anymore in jammy,.
  
  The fix consists of re-apply this patch with a little refactoring to be
  dependent on CONFIG_AUFS_FS.
  
  [Regression potential]
  
  This patch is touching overlayfs, so we may see potential regressions in
  overlayfs.
  
  [Original bug report]
  
  The next patch has not been ported to the the 5.13 branch:
  
  $ git show Ubuntu-azure-5.8-5.8.0-1033.35_20.04.1~656
  commit 5f5716d1f7ece06c66d7d8145dd6b3a5886b3e56
  Author: Alexander Mikhalitsyn <alexan...@mihalicyn.com>
  Date:   Mon Apr 26 10:11:00 2021 +0200
  
      UBUNTU: SAUCE: overlayfs: fix incorrect mnt_id of files opened from
  map_files
  
      BugLink: https://bugs.launchpad.net/bugs/1857257
  
  ...
  
      Fixes: d24b8a5 ("UBUNTU: SAUCE: overlayfs: allow with shiftfs as
  underlay")
  
  But it isn't in the 5.13 branch:
  
  $ git log --pretty=oneline origin/azure-5.13-next fs/overlayfs/file.c
  1e6145d8708c831d2aa5c26aa15eb98e1a1683b9 ovl: fix use after free in struct 
ovl_aio_req
  7b5bda27d1fc4d7bde20cf6ed203fe88c458169a ovl: fix IOCB_DIRECT if underlying 
fs doesn't support direct IO
  1626e7f7ab7eb74e142fec7fe6b7c9614972a56b ovl: fix deadlock in splice write
  1443bc4a25ca84d60d39a8ae1dc6215abdd637a4 UBUNTU: SAUCE: overlayfs: allow with 
shiftfs as underlay

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

Title:
  re-apply missing overlayfs SAUCE patch

Status in linux package in Ubuntu:
  In Progress
Status in linux source package in Impish:
  Fix Released
Status in linux source package in Jammy:
  Fix Released

Bug description:
  [Impact]

  Starting with 5.13 we've incorrectly dropped the following sauce
  patch:

      UBUNTU: SAUCE: overlayfs: fix incorrect mnt_id of files opened
  from map_files

  This patch seems to be required to use overlayfs on top of shiftfs and
  without this patch we may break containers that rely on shiftfs (using
  zfs/ceph as storage pool w/ shiftfs enabled).

  [Test case]

  The following script can be used to trigger the issue:
    #!/bin/bash

    cat > test.py << EOF
    import sys

    f = open("/proc/self/maps")

    for l in f.readlines():
      if "python" not in l:
        continue
      print(l)
      s = l.split()
      start, end = s[0].split("-")
      fname = s[-1]
      print(start, end, fname)
      break
    else:
      sys.exit(1)

    test_file1 = open(fname)
    test_file2 = open("/proc/self/map_files/%s-%s" % (start, end))

    fdinfo1 = open("/proc/self/fdinfo/%d" % test_file1.fileno()).read()
    fdinfo2 = open("/proc/self/fdinfo/%d" % test_file2.fileno()).read()

    if fdinfo1 != fdinfo2:
      print("FAIL")
      print(test_file1)
      print(fdinfo1)
      print(test_file2)
      print(fdinfo2)
      sys.exit(1)
    print("PASS")
    EOF
    sudo docker run -it --privileged --rm -v `pwd`:/mnt python python 
/mnt/test.py

  [Fix]

  The original SAUCE patch relies on AUFS in order to use
  vma->vm_prfile, but we're not providing AUFS anymore in jammy,.

  The fix consists of re-apply this patch with a little refactoring to
  be dependent on CONFIG_AUFS_FS.

  [Regression potential]

  This patch is touching overlayfs, so we may see potential regressions
  in overlayfs.

  [Original bug report]

  The next patch has not been ported to the the 5.13 branch:

  $ git show Ubuntu-azure-5.8-5.8.0-1033.35_20.04.1~656
  commit 5f5716d1f7ece06c66d7d8145dd6b3a5886b3e56
  Author: Alexander Mikhalitsyn <alexan...@mihalicyn.com>
  Date:   Mon Apr 26 10:11:00 2021 +0200

      UBUNTU: SAUCE: overlayfs: fix incorrect mnt_id of files opened
  from map_files

      BugLink: https://bugs.launchpad.net/bugs/1857257

  ...

      Fixes: d24b8a5 ("UBUNTU: SAUCE: overlayfs: allow with shiftfs as
  underlay")

  But it isn't in the 5.13 branch:

  $ git log --pretty=oneline origin/azure-5.13-next fs/overlayfs/file.c
  1e6145d8708c831d2aa5c26aa15eb98e1a1683b9 ovl: fix use after free in struct 
ovl_aio_req
  7b5bda27d1fc4d7bde20cf6ed203fe88c458169a ovl: fix IOCB_DIRECT if underlying 
fs doesn't support direct IO
  1626e7f7ab7eb74e142fec7fe6b7c9614972a56b ovl: fix deadlock in splice write
  1443bc4a25ca84d60d39a8ae1dc6215abdd637a4 UBUNTU: SAUCE: overlayfs: allow with 
shiftfs as underlay

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