summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Version 1.19.17.1.19.17Richard W.M. Jones2012-07-0618-202/+211
|
* ocaml: Calling Gc.compact before g#mount_local works around RHBZ#838081.Richard W.M. Jones2012-07-061-0/+1
|
* qemu: Use sgabios by default (thanks Dan Berrange).Richard W.M. Jones2012-07-061-0/+9
|
* todo: Investigate qemu caching modes.Richard W.M. Jones2012-07-041-0/+16
|
* Version 1.19.16.1.19.16Richard W.M. Jones2012-07-0420-20293/+20962
|
* qemu or qemu-kvm >= 1.1.0 is required.Richard W.M. Jones2012-07-041-1/+1
| | | | | | Earlier versions of qemu contained a bug in the qcow2 code which causes qemu to segfault when shutting down and flushing its internal cache, and this can result in data loss.
* New API: guestfs_shutdown: Cleanly shutdown the backend.Richard W.M. Jones2012-07-0336-89/+210
| | | | | | | | | | | | | | | | | | | | | | | | | | The new API splits orderly close into a two-step process: if (guestfs_shutdown (g) == -1) { /* handle the error, eg. qemu error */ } guestfs_close (g); Note that the explicit shutdown step is only necessary in the case where you have made changes to the disk image and want to handle write errors. Read the documentation for further information. This change also: - deprecates guestfs_kill_subprocess - turns guestfs_kill_subprocess into the same as guestfs_shutdown - changes guestfish and other tools to call shutdown + close where necessary (not for read-only tools) - updates documentation - updates examples
* close: Warn if qemu exits unsuccessfully.Richard W.M. Jones2012-07-031-1/+19
| | | | | Currently guestfs_close has no method to return an error indication, so this commit simply prints the error on stderr.
* close: Rearrange the order in which the handle is closed and freed.Richard W.M. Jones2012-07-031-33/+31
| | | | | | | | | | | | | The order is now: - remove the handle from the list of handles - send close trace message - sync and shutdown qemu - run user close callback - free temporary directory - free memory This commit ought to be no functional change.
* perl, python, ruby: Fix comments on call to close method.Richard W.M. Jones2012-07-033-1/+10
| | | | | | | Make the comments consistent. Also make the Perl example call $g->close explicitly so it is consistent with the other examples.
* examples: In create_disk example, don't call set_autosync.Richard W.M. Jones2012-07-037-56/+1
| | | | | This is now set by default in all supported versions of libguestfs. It's just confusing if the examples refer to it.
* daemon: Run fsync on block devices after sync (RHBZ#836710).Richard W.M. Jones2012-07-022-0/+79
| | | | | | | | | | | | | | | | | | On Linux, sync(2) does not actually issue a write barrier, thus it doesn't force a flush of the underlying hardware write cache (or qemu's disk cache in the virtual case). This can be a problem, because libguestfs relies on running sync in the appliance, followed by killing qemu (using SIGTERM). In most cases, this is fine, because killing qemu with SIGTERM should cause it to flush out the disk cache before it exits. However we have found various bugs in qemu which cause qemu to crash while doing the flush, leaving the data unwritten (see RHBZ#836913). The solution is to issue fsync(2) to the block devices. This has a write barrier, so it ensures that qemu writes out its cache long before we get around to killing qemu.
* daemon: Code tidy up in devsparts.Richard W.M. Jones2012-07-021-8/+9
| | | | No functional change.
* Add notes about how qemu cache=none works internally.Richard W.M. Jones2012-07-021-1/+12
| | | | This is just a comment and has no functional effect.
* Rename qemu option cache=off to cache=none.Richard W.M. Jones2012-07-022-10/+10
| | | | | Note that qemu treats these identically, so this change has no functional effect.
* appliance: Update paths to udevd.Richard W.M. Jones2012-07-021-1/+3
| | | | | systemd is playing a WTF game with udevd, moving it around and renaming it unnecessarily in each release. Chase all known locations.
* appliance: Update comment to note that systemd package now contains udevd.Richard W.M. Jones2012-07-021-1/+1
|
* Version 1.19.15.1.19.15Richard W.M. Jones2012-06-2920-18556/+18886
|
* tests: Add a test of /dev/disk/by-id paths (RHBZ#627675).Richard W.M. Jones2012-06-291-0/+8
|
* tests: Use qemu-img to create an overlay for testing, instead of copying.Richard W.M. Jones2012-06-292-16/+18
| | | | | | | | | | Replace: cp tests/guests/fedora.img test.img with the longer but possibly more space-efficient equivalent: qemu-img create -F raw -b tests/guests/fedora.img -f qcow2 test.qcow2
* inspect: Check partition exists when doing fstab mapping.Richard W.M. Jones2012-06-291-8/+26
| | | | | If the partition name we're about to return doesn't really exist, then don't perform the mapping.
* inspect: Guess device name from /dev/disk/by-id/*-partN path (RHBZ#627675).Richard W.M. Jones2012-06-291-0/+74
| | | | | | | | See https://bugzilla.redhat.com/show_bug.cgi?id=836573#c3 for an explanation. Useful function 'is_partition' shows how to tell if a device name represents a partition.
* inspect: Refactor resolve_fstab_device code into multiple functions.Richard W.M. Jones2012-06-291-68/+103
| | | | | | This is mostly code motion, although it also fixes a memory leak in an extremely rare failure case, and it generally tidies up the existing code.
* New API: guestfs_nr_devicesRichard W.M. Jones2012-06-293-1/+30
| | | | | | This returns the number of whole block devices added. It is usually simpler to call this than to list the devices and count them, which is what we do in some places in the current codebase.
* ruby: Fix detection of library (thanks Hilko Bengen).Richard W.M. Jones2012-06-291-7/+25
| | | | | | | | | On Debian, the Ruby C extensions library isn't '-lruby', it's something like '-lruby1.8' or '-lruby-1.9.1' and these can even be parallel-installed. Fix detection so we use Ruby's own rbconfig.rb file to find the right library to use.
* ruby: Changing spacing in configure file.Richard W.M. Jones2012-06-291-5/+5
| | | | No functional change.
* ruby: Remove useless AC_SUBST in configure file.Richard W.M. Jones2012-06-291-1/+0
|
* Update API support from tarballs.Richard W.M. Jones2012-06-2823-0/+11670
|
* tests: Reformat TESTS_ENVIRONMENT so all use a standard format.Richard W.M. Jones2012-06-287-16/+9
| | | | No functional change.
* python: Set PYTHON in run script.Richard W.M. Jones2012-06-282-3/+2
|
* ocaml: Set CAML_LD_LIBRARY_PATH in run script.Richard W.M. Jones2012-06-282-1/+3
|
* ruby: Use run --tests for tests.Richard W.M. Jones2012-06-282-3/+4
|
* java: Use run --tests for tests.Richard W.M. Jones2012-06-282-6/+6
| | | | Java-specific environment variables are set in the run script.
* gobject: Use run --test for tests, and set GJS in run script.Richard W.M. Jones2012-06-284-4/+7
|
* run: Rearrangement and add comments.Richard W.M. Jones2012-06-281-2/+5
| | | | No functional change.
* run: Set MALLOC_PERTURB_ to a random value.Richard W.M. Jones2012-06-2823-103/+25
| | | | | | | | | | | | | | | | | MALLOC_PERTURB_ is a glibc feature which causes malloc to wipe memory before and after it is used, allowing both use-after-free and uninitialized reads to be detected with relatively little performance penalty: http://udrepper.livejournal.com/11429.html?nojs=1 Modify the ./run script so that it always sets this. We were already using MALLOC_PERTURB_ in most tests. Since ./run is now setting this, we can remove it from individual Makefiles. Most TESTS_ENVIRONMENT will now simply look like this: TESTS_ENVIRONMENT = $(top_builddir)/run --test
* Version 1.19.14.1.19.14Richard W.M. Jones2012-06-284-6/+6
|
* tests: Fix 'run --test' so it cleans up its temporary file.Richard W.M. Jones2012-06-271-2/+2
| | | | This fixes commit 05d4e07918bfa9907a1fa66391e8e2e2370c64d4.
* Ensure #include <config.h> occurs in every C file.Richard W.M. Jones2012-06-278-0/+16
|
* src/actions.c: Include <config.h> in this generated file.Richard W.M. Jones2012-06-271-0/+2
| | | | | | | On RHEL 5, because _GNU_SOURCE was not defined, open_memstream was not being declared, resulting in miscompilation and a segfault in the trace code whenever open_memstream returned a pointer >= 0x80000000 (which would be truncated to a 32 bit int and then sign-extended).
* gobject: bindtests: gjs exception behaviour changed, fix test.Richard W.M. Jones2012-06-271-1/+1
| | | | | | | | | When libguestfs calls 'error (g, "error")', gjs in F17 throws error.message == "Error invoking Guestfs.test0rinterr: error" In F18, error.message is simply the string "error". Fix the test so it works for both cases.
* Version 1.19.13.1.19.13Richard W.M. Jones2012-06-266-338/+409
|
* fuse: Use the ./run --test script to run tests.Richard W.M. Jones2012-06-262-8/+2
|
* tests: Add ./run --test option.Richard W.M. Jones2012-06-2631-38/+64
| | | | | | | This option, when added via TESTS_ENVIRONMENT = [...] $(top_builddir)/run --test allows us to run the tests and only print the full output (including debugging etc) when the test fails.
* ./run: Fix indenting for shell script.Richard W.M. Jones2012-06-261-8/+8
|
* ocaml: Allow parallel mount-local test to be skipped.Richard W.M. Jones2012-06-261-0/+13
| | | | FUSE is not very reliable on RHEL 5.
* FAQ: Add Gentoo (thanks Agostino Sarubbo).Richard W.M. Jones2012-06-261-0/+6
|
* Version 1.19.12.1.19.12Richard W.M. Jones2012-06-2618-146/+193
|
* launch: Avoid double-close when qemu exits early.Richard W.M. Jones2012-06-261-2/+6
| | | | | | | | | | | | | | | The stdin and stdout of the qemu process are aliased to g->fd: g->fd[0] = wfd[1]; g->fd[1] = rfd[0]; However if the child exits early, then child_cleanup closes g->fd[0], g->fd[1], AND the code at the cleanup1 label closes wfd[1], rfd[0], resulting in a double-close. Avoid this case by setting wfd[1], rfd[0] to -1. In the cleanup1 label, only close wfd[1], rfd[0] if they are not -1, and add the same for g->fd[0], g->fd[1].
* launch: Ensure errno from test_qemu_cmd is captured and printed.Richard W.M. Jones2012-06-261-5/+3
|