| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The second parameter to 'config' may be NULL.
In commit 52fa23d74f6308daf804c2330b0b27e0b4412594 (refactoring of
guestfs_config) the code this got lost, and guestfs_config would
segfault if qemu_value was NULL.
Also this fixes the libvirt method to handle the same case.
I checked libguestfs-1.18 and -1.16 branches, and this problem does
NOT affect them.
|
|
|
|
|
|
|
| |
Since this is the most common error seen by people who have
installation problems, buggy qemu, etc, and since no one reads the
FAQ, describe in this error message what resources are available to
debug launch problems.
|
| |
|
|
|
|
|
|
| |
See:
https://bugzilla.redhat.com/show_bug.cgi?id=857659
especially Dan's comment 4.
|
|
|
|
|
|
|
| |
<file>: error: jump skips variable initialization [-Werror=jump-misses-init]
This has only just appeared, possibly related to previous gnulib
update. In any case, this is just code motion / cleanup.
|
|
|
|
| |
Found by 'make syntax-check'.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
This is a fix for multiprogramming: If two instances of libguestfs
share the same appliance disk, then libvirt would unlabel the disk
when one of the instances closes the handle, resulting in the other
qemu being unable to continue accessing the appliance.
Adding the flag makes libvirt understand that the disk is shared so it
doesn't do this, and it apparently handles locking correctly too if we
were using sanlock.
|
|
|
|
|
|
|
|
| |
This hint tells the backend whether anyone cares about errors when the
appliance is shut down.
Currently this only has any effect on the libvirt backend, where it
controls whether or not we use the VIR_DOMAIN_DESTROY_GRACEFUL flag.
|
|
|
|
|
|
| |
We want libvirt to report failures when destroying the guest. See:
https://bugzilla.redhat.com/show_bug.cgi?id=853369#c12
|
|
|
|
|
|
| |
in this case.
We definitely intend to support this in future.
|
| |
|
|
|
|
|
|
| |
Create the sockets in g->tmpdir as usual. It's a bug in libvirt that
it doesn't label the sockets correctly no matter where they are
located.
|
|
|
|
| |
valgrind).
|
|
|
|
|
|
|
|
|
|
|
| |
The assert (conn != NULL) was being triggered with this
stack trace:
at launch-libvirt.c:1305
fd=<optimized out>, error_if_eof=error_if_eof@entry=0) at proto.c:222
size_rtn=size_rtn@entry=0x7fffffffdb34,
buf_rtn=buf_rtn@entry=0x7fffffffdb58) at proto.c:548
libvirt_uri=<optimized out>) at launch-libvirt.c:391
|
|
|
|
|
| |
This directory won't necessarily exist (esp. if /var/run is
really /run). So create it each time.
|
| |
|
|
|
|
| |
cleanups.
|
|
|
|
|
|
| |
Note this does not yet enable sVirt confinement of the appliance.
That requires at least that SELinux policy goes upstream, plus there
may still be bugs.
|
|
|
|
| |
This is just code motion.
|
|
|
|
| |
This is just code motion.
|
| |
|
|
|
|
| |
attach-method.
|
|
|
|
|
|
|
|
| |
We were using format= which was bogus and libvirt was ignoring it and
forcing raw format instead.
Also in its default configuration libvirt won't do disk format
autodetection at all, so we must do it instead.
|
|
|
|
|
|
|
| |
And in any case there is no point, since proto.c already sets the
SOCK_CLOEXEC flag (using accept4) on this socket.
The code now matches the code in launch-appliance.c.
|
| |
|
|
|
|
|
| |
This causes libvirt to add the qemu -no-reboot option, which
reflects existing behaviour.
|
| |
|
|
|
|
|
|
|
|
| |
We need to select the <domain type=...> attribute depending on whether
KVM is detected in the libvirt capabilities.
This is a hack because it doesn't try to parse the libvirt
capabilities XML.
|
|
|
|
|
| |
This ensures maximum performance of the appliance, particularly for
things like MD where the guest needs to use optimal SSE instructions.
|
|
|
|
| |
file (thanks Dan Berrange).
|
| |
|
| |
|
|
|
|
|
|
|
| |
For compatibility with the appliance backend, devices added readonly
are in fact added writable with snapshots on top. This is necessary
because options like 'mount -o ro' usually require write access to the
disk (eg. to replay journals).
|
|
Complete the attach-method libvirt backend.
This backend uses libvirt to create a transient KVM domain to run the
appliance.
Note that this still will only work with local libvirt URIs since the
<kernel>, <initrd> and appliance links in the libvirt XML refer to
local files, and virtio serial only works locally (limitation of
libvirt). Remote support will be added later.
|