** Description changed:

- (Updated Description/Summary)
+ [Impact]
  
- Summary
- ==========
- * This is a bug in the supermin package v5.1.14 in Xenial.
- * This bug affects supermin versions < v5.1.18 when using a
-   kernel that is v4.13-based or later.
- * This bug was caused by an update to the mainline v4.13 kernel
-   which broke supermin due to the way supermin handled symlinks.
+ An update to mainline kernel v4.13 breaks the supermin v5.1.14
+ package in Xenial. Supermin is a tool for preparing and building
+ very specific, tiny, virtual appliances which boot very fast. It
+ uses an ext2 file system disk image. Users of supermin functionality
+ like guestfish, libguestfs-test-tool, etc., all break in different
+ ways as a result, some catastrophic, but in each case, the tool
+ and virtual appliance are not usable. This impacts the 
+ libguestfs-tools package (users of supermin).
  
- Impact
- ========
- * The bug results in total loss of functionality in supermin
-   and users of supermin such as guestfish, libguestfs-test-tool,
-   others. i.e. it is a regression in functionality for managing
-   virtual appliances.
- * This bug does not affect Bionic, Artful or Trusty (See Comment #14).
- 
- Test Case & Reproduction
- ===========================
- * This bug manifests in different ways based on the caller / use case
-   but is reliable and consistent in its reproduction.
-   See original description and Comment #12, for trivial repro cases.
- 
- Fix
- ====
- * The fix for the Xenial version includes a backport of 2 upstream
-   fixes to the file ext2fs-c.c (the fix for the symlink breakage
-   is contained in this file). See comment #13 for details.
- * A separate PPA test package for Xenial is available to test with
-   (See comment #13).
- * This fix has been tested successfully on Xenial and shown to fix the
-   reported and related breakages as listed in this bug (Comment #12).
- 
- Regression Potential
- =====================
- * Regression Potential: there might be some bugs in some edge cases
-   that have not been tested or some environment that is not typical
-   causing some new issue which might affect the creation of the virtual
-   appliances and their management/manipulation via tools in the
-   libguestfs-tools package (e.g. guestfish).
+ This bug results in users not being able to upgrade their kernel,
+ specifically, use a kernel that is v4.13-based or later. A 
+ workaround is to ensure that an earlier kernel (e.g. v4.4-based 
+ Xenial kernels) is used by supermin. This can conflict
+ with user needs to use a later kernel for other reasons.
  
  
- The attached debdiff is intended to create a rev of the current Xenial
- package version supermin_5.1.14-2ubuntu1 to supermin_5.1.14-2ubuntu1.1.
+ [Test Case]
+ 
+ 1) Using the v5.1.14 supermin installed and running on a 4.13-based 
+    kernel like 4.13.0-32-generic #35~16.04.1-Ubuntu:
+    (Assuming you have virtualization support packages etc. already
+     installed):
+ 
+     $ sudo apt-get install libguestfs-tools
+     $ libguestfs-test-tool
+ 
+      [appliance kernel panic or qemu crash or just a silent hang]
+ 
+ 
+ 2) Using the v5.1.14 supermin version and running on a 4.13-based 
+    kernel like 4.13.0-32-generic #35~16.04.1-Ubuntu:
+     
+    # wget 
https://cloud-images.ubuntu.com/releases/16.04/release/ubuntu-16.04-server-cloudimg-amd64-disk1.img
 -O /var/lib/libvirt/images/ubuntu-16.04-server-cloudimg-amd64-disk1.img
+ 
+    # guestfish --rw -a 
/var/lib/libvirt/images/ubuntu-16.04-server-cloudimg-amd64-disk1.img
+ Welcome to guestfish, the guest filesystem shell for
+ editing virtual machine filesystems and disk images.
+ 
+ Type: 'help' for help on commands
+ 'man' to read the manual
+ 'quit' to quit the shell
+ 
+ ><fs> run
+ libguestfs: error: appliance closed the connection unexpectedly.
+ This usually means the libguestfs appliance crashed.
+ 
+ 
+ [Regression Potential]
+ 
+ * There might be errors in creation and management of tiny
+   supermin appliances via tools in the libguestfs-tools
+   package.
+ 
+ 
+ [Other Info]
+ 
+ * From the upstream patch description, brief explanation of
+   the bug:
+ 
+   "The ext2 filesystem on disk format has two ways to store symlinks.
+   For symlinks >= 60 bytes in length, they are stored as files
+   (so-called "slow symlinks").  For shorter symlinks the symlink is
+   stored in the inode ("fast symlinks").
+ 
+   Previously we only created slow symlinks even if they are shorter than
+   60 bytes.  This didn't matter until recently, when a change went into
+   the upstream kernel which assumes that symlinks shorter than 60 bytes
+   are always stored in the inode, thus breaking the filesystems that we
+   created before..."
+ 
+   Note that the real fix is to switch to use ext2fs_symlink() to create
+   links. 
+ 
+ * A fix for this problem went into upstream supermin v5.1.18. 
+   Thus this bug affects supermin < v5.1.18, and kernel >= v4.13.
+ 
+ * Thus this bug only affects the Ubuntu Xenial distro release:
+ 
+    supermin = v5.1.14
+    kernel = v4.13.*
+ 
+   Artful includes the v4.1.18 supermin package (which has the symlink fix)
+   and Bionic has a later one (v4.1.19). Thus neither is affected by
+   this issue. Trusty is running an older version (4.1.6-1) of supermin
+   but is not running the v4.13 or later kernel, and is thus not affected
+   either.
+ 
+ * This fix has been tested successfully on Xenial and shown to fix the
+   reported and related breakages as listed in the Test Case section
+   and more.
+ 
+ * A public PPA test package for Xenial is available to test with
+   and has been tested by at least one user who was seeing the
+   problem, successfully.
+ 
+ * This fix backports 2 patches from upstream:
+ 
+    1. ext2: Don't load whole files into memory when copying to the appliance 
(RHBZ#1113065).
+    2. ext2: Create symlinks properly (RHBZ#1470157).
+ 
+    Patch 1 is necessary as it supplies some dependent code 
+    used by Patch 2; and Patch 2 does not compile cleanly without
+    it. 
+ 
+ 
https://github.com/libguestfs/supermin/commit/158854e3ba4be7f6b8d81f662ddad98358ede1de
+ 
+ 
https://github.com/libguestfs/supermin/commit/f5a3deef588759c49dc862427a265aced612002d
+ 
+   Both patches are contained to a single file (ext2fs-c.c).
+ 
+ * The fixed supermin has been tested with older (< 4.13) kernels
+   as well, with no regression or issues.
+ 
+ * There is no security impact / aspect to this change (as confirmed
+   by a quick review from security team member)
+ 
  
  ----
  
  Original Description
  =====================
  after upgrade to 4.13.0-26-generic #29~16.04.2-Ubuntu all the virt-* tools 
not work anymore
  
  running the libguestfs-test-tool shows that the qemu kernel crashes
  [    0.755354] Kernel panic - not syncing: Attempted to kill init! 
exitcode=0x00000100
  [    0.755354]
  [    0.756619] CPU: 0 PID: 1 Comm: init Not tainted 4.13.0-26-generic 
#29~16.04.2-Ubuntu
  [    0.757893] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 
Ubuntu-1.8.2-1ubuntu1 04/01/2014
  [    0.759157] Call Trace:
  [    0.759444]  dump_stack+0x63/0x8b
  [    0.760847]  panic+0xe4/0x23d
  [    0.761184]  do_exit+0xae6/0xaf0
  [    0.761547]  ? dput+0x34/0x1f0
  [    0.762292]  do_group_exit+0x43/0xb0
  [    0.762690]  SyS_exit_group+0x14/0x20
  [    0.763333]  entry_SYSCALL_64_fastpath+0x1e/0x81
  [    0.764221] RIP: 0033:0x451579
  [    0.764799] RSP: 002b:00007ffda4fe3768 EFLAGS: 00000246 ORIG_RAX: 
00000000000000e7
  [    0.766275] RAX: ffffffffffffffda RBX: 0000000001415cb3 RCX: 
0000000000451579
  [    0.767056] RDX: 0000000000000008 RSI: 0000000000000001 RDI: 
0000000000000001
  [    0.768290] RBP: 0000000001415c30 R08: 000000000000003c R09: 
00000000000000e7
  [    0.769451] R10: ffffffffffffffd0 R11: 0000000000000246 R12: 
0000000000000000
  [    0.770651] R13: 0044b82fa09b5a53 R14: 0000000000000000 R15: 
0000000001415c30
  [    0.772563] Kernel Offset: 0x3cc00000 from 0xffffffff81000000 (relocation 
range: 0xffffffff80000000-0xffffffffbfffffff)
  [    0.774729] Rebooting in 1 seconds..
  libguestfs: error: appliance closed the connect
  
  ProblemType: Bug
  DistroRelease: Ubuntu 16.04
  Package: linux-image-4.13.0-26-generic 4.13.0-26.29~16.04.2
  ProcVersionSignature: Ubuntu 4.13.0-26.29~16.04.2-generic 4.13.13
  Uname: Linux 4.13.0-26-generic x86_64
  ApportVersion: 2.20.1-0ubuntu2.15
  Architecture: amd64
  Date: Mon Jan 15 07:03:40 2018
  InstallationDate: Installed on 2017-07-14 (184 days ago)
  InstallationMedia: Ubuntu-Server 16.04.2 LTS "Xenial Xerus" - Release amd64 
(20170215.8)
  SourcePackage: linux-hwe
  UpgradeStatus: No upgrade log present (probably fresh install)

** Patch removed: "Debdiff for updated supermin package in Xenial."
   
https://bugs.launchpad.net/ubuntu/+source/supermin/+bug/1743300/+attachment/5054566/+files/lp1743300-xenial.debdiff

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1743300

Title:
  libguestfs not work anymore with 4.13.0-26-generic #29~16.04.2-Ubuntu

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

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to