Bug 1632456

Summary: supermin fails with empty files in the appliance directory
Product: [Community] Virtualization Tools Reporter: tkl
Component: superminAssignee: Richard W.M. Jones <rjones>
Status: CLOSED UPSTREAM QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: unspecifiedCC: ptoscano, rjones
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2019-09-25 13:43:24 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description tkl 2018-09-24 20:31:27 UTC
Description of problem:


Version-Release number of selected component (if applicable):
1.34.6-2+rpi1

How reproducible:
100%


Steps to Reproduce:
1. execute libguestfs-test-tool on raspbian


Actual results:
libguestfs: error: /usr/bin/supermin exited with error status 1, see debug messages above

Expected results:


Additional info:

     ************************************************************
     *                    IMPORTANT NOTICE
     *
     * When reporting bugs, include the COMPLETE, UNEDITED
     * output below in your bug report.
     *
     ************************************************************
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
XDG_RUNTIME_DIR=/run/user/0
SELinux: sh: 1: getenforce: not found
guestfs_get_append: (null)
guestfs_get_autosync: 1
guestfs_get_backend: direct
guestfs_get_backend_settings: []
guestfs_get_cachedir: /var/tmp
guestfs_get_direct: 0
guestfs_get_hv: /usr/bin/qemu-system-arm
guestfs_get_memsize: 500
guestfs_get_network: 0
guestfs_get_path: /usr/lib/arm-linux-gnueabihf/guestfs
guestfs_get_pgroup: 0
guestfs_get_program: libguestfs-test-tool
guestfs_get_recovery_proc: 1
guestfs_get_smp: 1
guestfs_get_sockdir: /tmp
guestfs_get_tmpdir: /tmp
guestfs_get_trace: 0
guestfs_get_verbose: 1
host_cpu: arm
Launching appliance, timeout set to 600 seconds.
libguestfs: launch: program=libguestfs-test-tool
libguestfs: launch: version=1.34.6
libguestfs: launch: backend registered: unix
libguestfs: launch: backend registered: uml
libguestfs: launch: backend registered: libvirt
libguestfs: launch: backend registered: direct
libguestfs: launch: backend=direct
libguestfs: launch: tmpdir=/tmp/libguestfs3EzZ2f
libguestfs: launch: umask=0022
libguestfs: launch: euid=0
libguestfs: is_openable: /dev/kvm: No such file or directory
libguestfs: begin building supermin appliance
libguestfs: run supermin
libguestfs: command: run: /usr/bin/supermin
libguestfs: command: run: \ --build
libguestfs: command: run: \ --verbose
libguestfs: command: run: \ --if-newer
libguestfs: command: run: \ --lock /var/tmp/.guestfs-0/lock
libguestfs: command: run: \ --copy-kernel
libguestfs: command: run: \ -f ext2
libguestfs: command: run: \ --host-cpu arm
libguestfs: command: run: \ /usr/lib/arm-linux-gnueabihf/guestfs/supermin.d
libguestfs: command: run: \ -o /var/tmp/.guestfs-0/appliance.d
supermin: version: 5.1.19
supermin: package handler: debian/dpkg
supermin: acquiring lock on /var/tmp/.guestfs-0/lock
supermin: build: /usr/lib/arm-linux-gnueabihf/guestfs/supermin.d
supermin: reading the supermin appliance
supermin: build: visiting /usr/lib/arm-linux-gnueabihf/guestfs/supermin.d/base.tar.gz type gzip base image (tar)
supermin: build: visiting /usr/lib/arm-linux-gnueabihf/guestfs/supermin.d/daemon.tar.gz type gzip base image (tar)
supermin: build: visiting /usr/lib/arm-linux-gnueabihf/guestfs/supermin.d/excludefiles type uncompressed excludefiles
supermin: build: visiting /usr/lib/arm-linux-gnueabihf/guestfs/supermin.d/hostfiles type uncompressed hostfiles
supermin: build: visiting /usr/lib/arm-linux-gnueabihf/guestfs/supermin.d/init.tar.gz type gzip base image (tar)
supermin: build: visiting /usr/lib/arm-linux-gnueabihf/guestfs/supermin.d/packages type uncompressed packages
supermin: /usr/lib/arm-linux-gnueabihf/guestfs/supermin.d/packages-hfsplus: unknown file type in supermin directory
libguestfs: error: /usr/bin/supermin exited with error status 1, see debug messages above
libguestfs: closing guestfs handle 0xbff048 (state 0)
libguestfs: command: run: rm
libguestfs: command: run: \ -rf /tmp/libguestfs3EzZ2f

Comment 1 Richard W.M. Jones 2018-09-24 22:02:45 UTC
What is:

/usr/lib/arm-linux-gnueabihf/guestfs/supermin.d/packages-hfsplus

What packager/organization made this libguestfs package?

Comment 2 tkl 2018-09-25 07:21:46 UTC
$ apt-cache show libguestfs-hfsplus
Package: libguestfs-hfsplus
Source: libguestfs
Version: 1:1.34.6-2+rpi1
Architecture: armhf
Maintainer: Debian Libvirt Maintainers <pkg-libvirt-maintainers.debian.org>
Installed-Size: 985
Depends: libguestfs0 (= 1:1.34.6-2+rpi1)
Multi-Arch: same
Homepage: http://libguestfs.org
Priority: extra
Section: libs
Filename: pool/main/libg/libguestfs/libguestfs-hfsplus_1.34.6-2+rpi1_armhf.deb
Size: 998664
SHA256: 6a4ca7821d0c044539b3729cc304c10a6c03f80413b43f5e66f2e3a1efaee00e
SHA1: b183de6349216b942708674113613709bf2feb1c
MD5sum: 16bd322c872dc6e818c228e91248e61b
Description: guest disk image management system - HFS+ support
 The libguestfs library allows accessing and modifying guest disk
 images.
 .
 This package contains appliance fragments for HFS+ support.
Description-md5: ea5906bfd147ee46a7f33416ae450088

Comment 3 Richard W.M. Jones 2018-09-25 08:01:36 UTC
The error is from here:

https://github.com/libguestfs/supermin/blob/master/src/mode_build.ml#L317-L334

Whatever /usr/lib/arm-linux-gnueabihf/guestfs/supermin.d/packages-hfsplus
is it doesn't match one of the expected file types.  See also the
documentation:

http://libguestfs.org/supermin.1.html#SUPERMIN-APPLIANCES

Really need to know what the file actually is ...

Comment 4 tkl 2018-09-25 08:33:37 UTC
It turned out that 

/usr/lib/arm-linux-gnueabihf/guestfs/supermin.d/packages-hfsplus

was empty. I compared with my x86_64 host system and just added "hfsplus"

Now it's working.
Thanks a lot for your help.

Comment 5 Pino Toscano 2019-09-25 13:41:49 UTC
Ah, this was a bug in supermin, that used to trip over empty filed.
This was fixed upstream with
https://github.com/libguestfs/supermin/commit/52172bdd5e109563277c31516136278161ade29b
which is in supermin >= 5.1.20.