** 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 [email protected] https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
