Richard W.M. Jones [Thu, 21 Jul 2011 16:59:34 +0000 (17:59 +0100)]
build: Redirect ./configure errors in general to config.log.
(cherry picked from commit
71eb0bf45649eefa1f0cd4b1372cfc2653c8e7a5)
Richard W.M. Jones [Thu, 21 Jul 2011 16:00:48 +0000 (17:00 +0100)]
build: Send failed Perl test configure output to config.log.
(cherry picked from commit
610642491a4846f45c7b233060ffde46f6ca09f0)
Richard W.M. Jones [Thu, 21 Jul 2011 09:50:40 +0000 (10:50 +0100)]
build: Allow 'make quickcheck' test-tool args to be overridden.
A typical use for this is for packagers who want to increase
the default timeout:
make quickcheck QUICKCHECK_TEST_TOOL_ARGS="-t 300"
(Cherry picked from commit
806b6e01506dea4eae68ac3e468d9398d63cafcb)
Richard W.M. Jones [Wed, 20 Jul 2011 13:41:39 +0000 (14:41 +0100)]
blkid: Use -c /dev/null option to kill the cache.
On recent Debian, /etc/blkid.tab is now a symlink to /dev/.blkid.tab.
Rather than chasing the cache file around (it may move to /run in future)
use the -c /dev/null option to stop blkid from reading the cache.
(cherry picked from commit
1d0f398d8e3c74ce6a70cbbb8d9b8ae07c6d7ef6)
Richard W.M. Jones [Wed, 20 Jul 2011 13:25:32 +0000 (14:25 +0100)]
blkid: Detect when value not found and return empty string.
If the blkid command returns 2, that means the value was not found.
Note that this changes the output of the vfs-type API when the
filesystem has no type (eg when it is empty). Previously this would
return an error. Now it returns empty string "".
We did not document this either way. Making it return empty string is
consistent with vfs-label and vfs-uuid.
This change broke list-filesystems, since that code was assuming that
vfs-type could only return a filesystem type or an error.
(cherry picked from commit
168fd4ad5d1e5da93e11388095d41aaa8f804ceb)
Richard W.M. Jones [Wed, 20 Jul 2011 11:07:30 +0000 (12:07 +0100)]
appliance: Capture stderr from qemu to the event system.
(cherry picked from commit
8b2e60ce4b46e86da093ee64d4e0b0ae3c998d55)
Richard W.M. Jones [Wed, 20 Jul 2011 11:05:40 +0000 (12:05 +0100)]
appliance: Document pipe fds.
(cherry picked from commit
70daccfe4e9939078436c2830928d8e53432dd84)
Richard W.M. Jones [Tue, 19 Jul 2011 18:55:24 +0000 (19:55 +0100)]
build: Fix virtio-serial test for qemu 0.15.
(Cherry picked and combined
commit
d82438431c1551610eb7d9945fa76d6387534582 and
commit
5dec7842655dd872bb0fd9fe07f6a9eab6b13bfd)
Richard W.M. Jones [Thu, 14 Jul 2011 10:27:24 +0000 (11:27 +0100)]
mkfs: Don't die if mke2fs is not available.
Allow other types of filesystems to be created.
(cherry picked from commit
c6340f45007b0ab7e1c5391cf78afc10a816553f)
Richard W.M. Jones [Tue, 12 Jul 2011 16:18:48 +0000 (17:18 +0100)]
part-get-bootable: Fix when partitions are missing or unordered (RHBZ#602997).
(cherry picked from commit
511c82df46f5c6f4a7f984fdb81d4691038ed6da)
Richard W.M. Jones [Sat, 16 Jul 2011 08:44:28 +0000 (09:44 +0100)]
Version 1.8.9.
Richard W.M. Jones [Tue, 12 Jul 2011 13:13:57 +0000 (14:13 +0100)]
Document that ntfsresize cannot be used multiple times (RHBZ#685009).
(cherry picked from commit
2ba2ddf2113db7bb2afe3f739dc3cbaa5416a4ba)
Richard W.M. Jones [Tue, 12 Jul 2011 17:17:35 +0000 (18:17 +0100)]
protocol: Force optargs_bitmask to be passed as 0 for non-opt actions.
If the action doesn't take optional arguments, nevertheless force the
optargs_bitmask field in the header to be passed as 0, and give an
error if not.
(cherry picked from commit
0344248af55802bbbd816b349ec1ba9305996f6e)
Richard W.M. Jones [Thu, 30 Jun 2011 11:57:31 +0000 (12:57 +0100)]
Add caution subdirectory containing safety and liveness tests.
Not that I'm paranoid about qemu breaking snapshots of anything like
that ...
Cherry picked from commit
f3ada2c7653866f2529c9f18aaa99f76cd984844.
Richard W.M. Jones [Tue, 28 Jun 2011 16:02:46 +0000 (17:02 +0100)]
inspector: Fix comment in virt-inspector.rng.
The comment referred to the command line syntax of the old
virt-inspector.
(cherry picked from commit
ea96c7acf7a332c08c2214796add647224a2ede0)
Richard W.M. Jones [Mon, 27 Jun 2011 17:14:15 +0000 (18:14 +0100)]
Revert "Lib.pm: unknown filesystem label SWAP-sda2 (RHBZ#666578)"
This reverts commit
5cab0d6c807d8a3bf9690375c663d11a10e21656.
(cherry picked from commit
123610f1b5133a9e541a245467f60d065ea96575)
Richard W.M. Jones [Wed, 22 Jun 2011 09:36:44 +0000 (10:36 +0100)]
trace: Print empty list correctly.
Empty lists returned by RStringList and RHashtable functions
were incorrectly printed as [""].
Fix this so they are printed as [] instead.
Cherry picked from commit
56b94f5f6aa7981533ad867cc908c6e9cca2ba42.
Richard W.M. Jones [Sat, 18 Jun 2011 12:04:18 +0000 (13:04 +0100)]
perl: Ignore MYMETA.yml.
This file is created by one of the build tools used by Perl 5.14.
(cherry picked from commit
cabfaa857fbd325bd0303fa56b28df8ce52aab33)
Richard W.M. Jones [Sat, 18 Jun 2011 12:00:00 +0000 (13:00 +0100)]
perl: Don't use qw() as parentheses.
In Perl 5.14:
Use of qw(...) as parentheses is deprecated at perl/blib/lib/Sys/Guestfs/Lib.pm line 1111.
(cherry picked from commit
5c3c7e8825341e18c9449976f8a321a04cc78d79)
Richard W.M. Jones [Mon, 13 Jun 2011 17:58:53 +0000 (18:58 +0100)]
generator: Rewrite UUIDs that begin with zero byte.
In util-linux <= 2.19, mkswap -U cannot handle the first byte of the
UUID being zero, so we artificially rewrite such UUIDs.
See: http://article.gmane.org/gmane.linux.utilities.util-linux-ng/4273
(cherry picked from commit
4ee190628bc05f0c8fad1f6d9c3e85619a91e8b8)
Richard W.M. Jones [Mon, 13 Jun 2011 13:13:34 +0000 (14:13 +0100)]
Version 1.8.8.
Richard W.M. Jones [Thu, 9 Jun 2011 09:10:50 +0000 (10:10 +0100)]
daemon: Keep Coverity happy by ignoring some return values.
(cherry picked from commit
f5096dd546ac43c7288b3ab7aec1562f070f78f6)
Richard W.M. Jones [Thu, 9 Jun 2011 08:39:54 +0000 (09:39 +0100)]
Coverity: Don't return freed pointers from command* along error path.
If the external command failed to run, we could free up the allocated
*stdoutput and *stderror pointers, but then return those freed
pointers to the caller. The caller usually tries to print and free
*stderror, so this is a serious error.
Instead, return *stdoutput as NULL, and *stderror pointing to a
generic error message.
(cherry picked from commit
29453a58d818df24c238d0a08a68886ebe4029dd)
Richard W.M. Jones [Wed, 8 Jun 2011 21:38:53 +0000 (22:38 +0100)]
Coverity: Missing return on error path.
(cherry picked from commit
7a091a11d7aeddc170e4d1b833fd9d7d18c00841)
Richard W.M. Jones [Wed, 8 Jun 2011 21:30:24 +0000 (22:30 +0100)]
Coverity: Ensure fp is closed along all error paths.
(cherry picked from commit
346c5b0ebf58c81f657540eeb72abaa41bfc4e3f)
Richard W.M. Jones [Wed, 8 Jun 2011 21:27:01 +0000 (22:27 +0100)]
Coverity: Close directory handle along error paths.
(cherry picked from commit
7c020a14802255c966b2b402b983551b86a08bba)
Richard W.M. Jones [Wed, 8 Jun 2011 21:25:21 +0000 (22:25 +0100)]
Coverity: Don't leak argv arrays.
(cherry picked from commit
869c11b30c72c57e48dd63c4641087a06abe80d5)
Richard W.M. Jones [Wed, 8 Jun 2011 21:16:59 +0000 (22:16 +0100)]
Coverity: Don't leak error strings.
(Cherry picked from commit
3135b8c378f9f98ae66e37fd79d305764334980d).
Richard W.M. Jones [Wed, 8 Jun 2011 21:14:21 +0000 (22:14 +0100)]
Coverity: Check return value of sysroot_path.
For some reason we were checking the parameter!
(cherry picked from commit
7fae594df719d1d81a043c4d0280b359f750facb)
Richard W.M. Jones [Wed, 8 Jun 2011 21:07:36 +0000 (22:07 +0100)]
Coverity: Check return value of malloc.
(cherry picked from commit
3a5bd5aba23583e64bfaabc906ca95b0f9d37578)
Richard W.M. Jones [Wed, 8 Jun 2011 21:04:25 +0000 (22:04 +0100)]
Coverity: Don't close fd_cwd if fd_cwd == -1.
(cherry picked from commit
76dfb74324fa0daa343d7edf89bd05e1fe7b4db0)
Richard W.M. Jones [Wed, 8 Jun 2011 21:01:41 +0000 (22:01 +0100)]
Coverity: Avoid calling sort_strings (NULL, 0) on empty list.
(cherry picked from commit
3ed8d5122026f37dd96cc7e8503c4f3ecf0afbb7)
Richard W.M. Jones [Wed, 8 Jun 2011 20:56:56 +0000 (21:56 +0100)]
Coverity: Don't call free_strings (NULL).
(cherry picked from commit
48ebf50f3136ac27f4252662e351230ffa2b15e5)
Richard W.M. Jones [Wed, 8 Jun 2011 20:53:07 +0000 (21:53 +0100)]
Coverity: Remove unreachable code.
(cherry picked from commit
9160eec4fbf12643d8d5fa13465066822b2fed92)
Richard W.M. Jones [Wed, 8 Jun 2011 12:12:01 +0000 (13:12 +0100)]
init: Remove timeout in udevadm settle command.
The given timeout (10s) was too low if the appliance was
running slowly, which caused a cascade of other failures
during tests.
Note that in udev-171 and above on Fedora, /sbin/start_udev
no longer exists, so now we are using this manual method to
start udevd.
(cherry picked from commit
bfc02f78f36d88543f8435e450e28c986b667a94)
Richard W.M. Jones [Tue, 7 Jun 2011 11:36:02 +0000 (12:36 +0100)]
protocol: Enhance "unexpected end of file when reading from daemon" error.
Make this error more informative, since it is a common error when the
appliance fails to start up.
(cherry picked from commit
2f73ea343cc4a3433f20e99a7835152767a70f80)
Richard W.M. Jones [Sat, 4 Jun 2011 21:47:52 +0000 (22:47 +0100)]
Only include date, not time, in BUGS file.
This is so the file does not change so often when using 'make dist'.
(cherry picked from commit
cdd11b758f2601f7eeda4fca684638b0335d531a)
Richard W.M. Jones [Fri, 3 Jun 2011 13:49:19 +0000 (14:49 +0100)]
virt-ls: Small fix for output of --help option.
(cherry picked from commit
7177340a6f0e3ac1f238c69b0ad5267e18252fe2)
Nikita A Menkovich [Fri, 20 May 2011 10:26:09 +0000 (11:26 +0100)]
daemon: Fix error message.
(cherry picked from commit
08bc8e40cea750bd35493ecab514e8e37c883a0a)
Richard W.M. Jones [Wed, 18 May 2011 14:32:59 +0000 (15:32 +0100)]
guestfs-examples(3): Remove link to OCaml homepage.
(cherry picked from commit
95368927219f2888aeb1232c7ec950dde538bc39)
Richard W.M. Jones [Tue, 17 May 2011 19:57:56 +0000 (20:57 +0100)]
Document that guestfs_file output depends on file(1) command.
And therefore practically it cannot be part of the ABI since
the output of file(1) itself changes from time to time.
(cherry picked from commit
ef6f877b9df261fad1fbf361b8ce7af1055dfbb7)
Richard W.M. Jones [Wed, 18 May 2011 10:34:58 +0000 (11:34 +0100)]
Version 1.8.7.
Richard W.M. Jones [Thu, 21 Apr 2011 16:33:48 +0000 (17:33 +0100)]
inspect: Look for %systemroot%/system32 for Windows heuristic.
The virt-v2v transfer ISO had a /windows directory. The core
inspection code thought this was a Windows root filesystem.
Cherry picked and backported from
commit
0da6f55a6745686ca056c6bc8ebf647f111cb8e8.
Richard W.M. Jones [Thu, 21 Apr 2011 16:29:44 +0000 (17:29 +0100)]
list-applications: If software hive is missing, this is an error.
virt-inspector would exit silently if list-applications failed along
this error path.
Cherry picked and backported from
commit
782f3a36469ca396dbf998ea82af2699153be3ed.
Richard W.M. Jones [Wed, 18 May 2011 09:04:05 +0000 (10:04 +0100)]
zero: Disable file test because of bug in file command.
See: https://bugzilla.redhat.com/show_bug.cgi?id=705499
(cherry picked from commit
f55b32b2db83495fc0987f0fe0e979818704dff1)
Richard W.M. Jones [Mon, 18 Apr 2011 22:13:25 +0000 (23:13 +0100)]
Version 1.8.6.
Richard W.M. Jones [Mon, 18 Apr 2011 15:56:08 +0000 (16:56 +0100)]
python: Release Python GIL while running libguestfs calls.
Release the Python global interpreter lock while running libguestfs
calls.
We don't release it around guestfs_create() because that is a short
call that just allocates memory. We do release it around
guestfs_close() since that is a potentially long-running (it can call
wait(2) amongst other things). We also release it around all the
other generated Python calls.
We don't yet support callbacks into Python code (ie. the new event
API). But when we do in future, we will need to also handle the GIL
around those callbacks.
This code is adapted from libvirt's python/typewrappers.h. Thanks to
Dan Berrange for showing us how to do this properly.
(cherry picked from commit
08dc4a87b92435678780e9c49fe3bc1e7465d99f)
Richard W.M. Jones [Sat, 16 Apr 2011 20:26:15 +0000 (21:26 +0100)]
fish: Fix typo in guestfish man page (--format option).
(cherry picked from commit
4c2bb8b301970e8853a8feaa95e3698224640fba)
Richard W.M. Jones [Thu, 14 Apr 2011 17:19:04 +0000 (18:19 +0100)]
inspector: Handle write failures when creating example-*.xml.
(cherry picked from commit
0108d7861d4cc9a1f0d87d89080d1be7750e54b5)
Richard W.M. Jones [Thu, 14 Apr 2011 16:58:51 +0000 (17:58 +0100)]
inspector: Include <hostname> in output.
Cherry picked from commit
36d3a4ce53317b104d48b60c9fe1ed679065d1d4
and rebased for stable-1.8 branch.
Richard W.M. Jones [Mon, 11 Apr 2011 10:36:31 +0000 (11:36 +0100)]
Version 1.8.5.
Matthew Booth [Thu, 7 Apr 2011 14:30:54 +0000 (15:30 +0100)]
Compile rpcgen-generated files with -fno-strict-aliasing
rpcgen generates source which can't be safely compiled with strict-aliasing
enabled.
(cherry picked from commit
3a84e0784e1e3ab7b56850d0f8c9aa42f1ae3da1)
Richard W.M. Jones [Tue, 5 Apr 2011 17:44:55 +0000 (18:44 +0100)]
Rename resolve_windows_path_silently to case_sensitive_path_silently.
A more accurate description of what this function does.
This is just code motion.
(cherry picked from commit
f3eea44f97340f747e46b0df6931a04b53abaf01)
Richard W.M. Jones [Tue, 5 Apr 2011 16:46:23 +0000 (17:46 +0100)]
edit: Move 'exit 0' to end of file.
This is just code motion.
(cherry picked from commit
60cdf446063a0ae61c52140355677d7da2327fa2)
Richard W.M. Jones [Tue, 5 Apr 2011 16:45:41 +0000 (17:45 +0100)]
edit: Let $root == $roots[0].
This is just code motion.
(cherry picked from commit
aed8f220d279e910e0f398fea6fa674cc6a63783)
Richard W.M. Jones [Tue, 5 Apr 2011 16:44:41 +0000 (17:44 +0100)]
cat, edit: Reference guestfish equivalent commands in the manual pages.
(cherry picked from commit
4de124debf181ff6af38617b80c2355627e38d35)
Richard W.M. Jones [Mon, 4 Apr 2011 11:48:02 +0000 (12:48 +0100)]
python: Convert any iterable argument to a list (RHBZ#693324).
Thanks to Erez Shinan.
(cherry picked from commit
afa17809599f3ebc82c3feef025ca812fb26c9fe)
Richard W.M. Jones [Fri, 1 Apr 2011 14:27:46 +0000 (15:27 +0100)]
daemon: When running commands, restart select if we receive a signal.
(cherry picked from commit
6e5f64089631622167e60df25ee009ef83df5170)
Richard W.M. Jones [Fri, 1 Apr 2011 14:26:46 +0000 (15:26 +0100)]
daemon: Reset SIGPIPE to default before running subprocesses.
(cherry picked from commit
42938f6faf9e724130be28f8e67d3c291bb81cba)
Richard W.M. Jones [Fri, 1 Apr 2011 12:30:24 +0000 (13:30 +0100)]
Add prototype for timeval_diff.
This is just code motion.
Cherry picked from commit
1e6be6afe58de5bfb1ac056b80d3210888edfead.
Richard W.M. Jones [Fri, 1 Apr 2011 12:54:18 +0000 (13:54 +0100)]
docs: Progress messages don't necessarily reach 100% in the error case.
This should be obvious, and now it is documented to avoid any
confusion.
(cherry picked from commit
05dbe09a5c5be3d5f68dc6eb033c4f642fbac8bf)
Richard W.M. Jones [Thu, 31 Mar 2011 19:18:23 +0000 (20:18 +0100)]
examples: Use WARN_CFLAGS, WERROR_CFLAGS macros instead of -Wall
(cherry picked from commit
b41e73008a939ef493d2bfb82c9bd07b0f74736a)
Richard W.M. Jones [Thu, 31 Mar 2011 19:17:02 +0000 (20:17 +0100)]
examples: size_t-correctness change in inspect_vm.c
(cherry picked from commit
d5eb5216aae0cb83fae686f490d1c3c37c2c074e)
Richard W.M. Jones [Thu, 31 Mar 2011 17:20:08 +0000 (18:20 +0100)]
contrib: Fix URLs in README file.
(cherry picked from commit
1612201a83e732eec7d98d1679dd9dd426bcd10d)
Richard W.M. Jones [Wed, 30 Mar 2011 15:33:14 +0000 (16:33 +0100)]
rescue: Add -w|--rw option.
Note this has been backported to the 1.8 branch to allow us to write
documentation which refers to the virt-rescue --rw option. The option
does nothing in 1.8.
(cherry picked from commit
4155d20014b24b2203c4dd8b00e2e19450a7e3bb)
Richard W.M. Jones [Wed, 30 Mar 2011 15:32:33 +0000 (16:32 +0100)]
fuse: Document -w flag in --help output.
(cherry picked from commit
3824935411e8a046f0359578978447dd5a0a1a16)
Richard W.M. Jones [Tue, 29 Mar 2011 15:07:21 +0000 (16:07 +0100)]
Exclude po-docs directory completely if po4a not available.
Lift the if HAVE_PO4A ... endif completely out of the po-docs
subdirectory, and just exclude the whole subdirectory if the po4a
program is not available.
(cherry picked from commit
58f7a5a4ac8cce77dfaded1c29f3ad382b4cc9a8)
Richard W.M. Jones [Tue, 29 Mar 2011 15:03:29 +0000 (16:03 +0100)]
tests: Don't fail when compiled without support for NTFS.
(cherry picked from commit
edb7501d60a03107c21f023b256d2b01cf116437)
Richard W.M. Jones [Tue, 29 Mar 2011 20:36:00 +0000 (21:36 +0100)]
Version 1.8.4.
Richard W.M. Jones [Tue, 29 Mar 2011 11:20:57 +0000 (12:20 +0100)]
perl: Canonicalize /dev/vd* paths in old inspection code (RHBZ#691724).
(cherry picked from commit
759f4369de965f46f4a93b3a75dada050f87e223)
Richard W.M. Jones [Mon, 28 Mar 2011 16:18:24 +0000 (17:18 +0100)]
README: Note that getfacl, getfattr are optional dependencies.
(cherry picked from commit
d82d6f0633f63d4a884147b1e85851e96ff8f58d)
Richard W.M. Jones [Mon, 28 Mar 2011 13:45:23 +0000 (14:45 +0100)]
fuse: Fix getxattr, listxattr calls and add a regression test (RHBZ#691389).
The documentation for the getxattr and listxattr calls is not very
clear and as a result we were always returning something different
from that which the Linux kernel would usually return.
This fixes these calls, at least far enough that both the 'getfattr'
and 'getfacl' programs now work fine on FUSE-mounted filesystems.
Note that SELinux attrs are *not* passed through. This appears to be
a known bug between SELinux and FUSE. For more information see:
http://www.spinics.net/lists/selinux/msg09460.html
Cherry picked from commit
0d6fd9e1d2488841c912c5351086e536772837ef:
- rebased on stable-1.8 branch
- removed unintended hunk (which changed -m documentation in
guestmount --help output)
- removed parts of test-fuse.sh which will fail because
there is no support for passing acl,user_xattr options in
an extended -m option
Richard W.M. Jones [Fri, 25 Mar 2011 14:42:40 +0000 (14:42 +0000)]
RHEL 5: Use mke4fs on RHEL 5 as replacement for mke2fs.
(cherry picked from commit
a0e3b2183733c7440ad017c4ffe361935672339b)
Richard W.M. Jones [Fri, 25 Mar 2011 14:34:31 +0000 (14:34 +0000)]
mkfs: Force mke2fs to create a filesystem even on raw IDE device (RHBZ#690819).
(cherry picked from commit
227bea6c7ef89b707fe2c01c4d0d0fb9081e8c04)
Richard W.M. Jones [Fri, 25 Mar 2011 12:32:08 +0000 (12:32 +0000)]
Rename $tmpdir/sock to $tmpdir/guestfsd.sock.
No functional change; this simply makes the purpose of the
socket clearer.
(cherry picked from commit
110bfe1fcc9964b82acf7df6d4d60774471f9157)
Richard W.M. Jones [Tue, 22 Mar 2011 11:50:26 +0000 (11:50 +0000)]
fish: Add better quick help to --help output.
(cherry picked from commit
0daf7e81a659bcdc1ce327151cc1207b124a35a1)
Richard W.M. Jones [Tue, 22 Mar 2011 11:50:03 +0000 (11:50 +0000)]
fish: Add -w|--rw option to --help output.
(cherry picked from commit
c8faa5d0b0a17689d27bd33bc787ba0fe9a3f076)
Richard W.M. Jones [Tue, 22 Mar 2011 11:20:38 +0000 (11:20 +0000)]
inspect: Don't fail for Windows guests with multiple disks (RHBZ#674130).
Cherry picked from commit
d06fee159c14d4fe7654a02bae8849c4f82565f8
and backported to stable-1.8 branch.
Richard W.M. Jones [Tue, 22 Mar 2011 11:05:21 +0000 (11:05 +0000)]
inspect: Simplify Windows root heuristic code.
Add special is_file_nocase and is_dir_nocase functions and
remove the duplicate checks for files and directories with
different cases.
(cherry picked from commit
5776c145d411e5ae00072ecf422055f3d0bd29e2)
Richard W.M. Jones [Mon, 21 Mar 2011 11:58:47 +0000 (11:58 +0000)]
Version 1.8.3.
Richard W.M. Jones [Sat, 19 Mar 2011 18:41:23 +0000 (18:41 +0000)]
guestfs(3): 'kernel' -> 'supermin appliance'.
(cherry picked from commit
1541f3a564f8ff14c1a63298120e4dc618ea3274)
Richard W.M. Jones [Sat, 19 Mar 2011 18:18:56 +0000 (18:18 +0000)]
guestfs(3): Indent line to keep code together.
(cherry picked from commit
cf6f380c544456ee3e84fd41a480ea4cab3d94dd)
Richard W.M. Jones [Fri, 18 Mar 2011 20:02:29 +0000 (20:02 +0000)]
fish: Add all stamp-*.pod files to CLEANFILES.
(cherry picked from commit
c6310bd242ddaa7b0801df9da7e4fba7346dc53e)
Richard W.M. Jones [Fri, 18 Mar 2011 18:27:21 +0000 (18:27 +0000)]
proto: Fix both-ends-cancel case.
In the case where both ends cancel at the same time (eg. both ends
realize there are errors before or during the transfer), previously we
skipped sending back an error from the daemon, on the spurious basis
that the library would not need it (the library is cancelling because
of its own error).
However this is wrong: we should always send back an error message
from the daemon in order to preserve synchronization of the protocol.
A simple test case is:
$ guestfish -N fs -m /dev/sda1 upload nosuchfile /
libguestfs: error: open: nosuchfile: No such file or directory
libguestfs: error: unexpected procedure number (66/282)
(Notice two things: there are errors at both ends, and the
loss of synchronization).
After applying this commit, the loss of synchronization does not occur
and we just see the library error:
$ guestfish -N fs -m /dev/sda1 upload nosuchfile /
libguestfs: error: open: nosuchfile: No such file or directory
The choice of displaying the library or the daemon error is fairly
arbitrary in this case -- it would be valid to display either or even
to combine them into one error. Displaying the library error only
makes the code considerably simpler.
This commit also (re-)enables a test for this case.
Cherry picked and rebased from
commit
f4d996fd26762053d68f46de5790aae893f03d38.
Richard W.M. Jones [Fri, 18 Mar 2011 17:17:30 +0000 (17:17 +0000)]
proto: Fix FileIn ops that abort during the chunk upload stage.
As a previous, incorrect attempt to fix RHBZ#576879 we tried to
prevent the daemon from sending an error reply if the daemon had
cancelled the transfer. This is wrong: the daemon should send an
error reply in these cases.
A simple test case is this:
guestfish -N fs -m /dev/sda1 upload big-file /
(This fails because the target "/" is a directory, not a file.)
Prior to this commit, libguestfs would hang instead of printing an
error. With this commit, libguestfs prints an error.
What is happening is:
(1) Library is uploading
a file (2) In the middle of the long
upload, daemon detects an error.
Daemon cancels.
(3) Library detects cancel,
sends cancel chunk, then waits
for the error reply from the
daemon. (4) Daemon is supposed to send
an error reply message.
Because step (4) wasn't happening, uploads that failed like this would
hang in the library (waiting for the error message, while the daemon
was waiting for the next request).
This also adds a regression test.
This temporarily breaks the "both ends cancel" case (RHBZ#
576879c5).
Therefore the test for that is disabled, and this is fixed in the next
patch in the series.
This partially reverts commit
dc706a639eec16084c0618baf7bfde00c6565f63.
Cherry picked and rebased from
commit
33b638109ed66ea360b53b80b1f407b3a5f5ec39.
Richard Jones [Fri, 18 Mar 2011 16:18:37 +0000 (16:18 +0000)]
proto: Don't drop outgoing message when daemon cancels (RHBZ#576879).
This is a (potential) fix for the long standing protocol bug
which causes loss of synchronization when a FileIn action
fails very early on the daemon side. The canonical example
would be the 'upload' action failing immediately if no filesystem
is mounted.
What's supposed to happen is this:
(1) library sends
request message (2) daemon processes request
first chunk of data and sees that it will fail,
sends cancellation
(3) discards chunks of data
(4) library sees daemon
cancellation and stops
sending chunks
It was going wrong in step (1), in guestfs___send_to_daemon.
In some (timing related) circumstances, send_to_daemon could
receive the cancellation before sending the first chunk, at
which point it would exit, *discarding the first chunk*.
This causes the daemon to fail in step (3) since it reads the
next request as if it was a chunk, thus losing synchronization.
(The protocol specifies that you always have to send at least
one chunk if there is a FileIn or FileOut parameter).
The patch changes guestfs___send_to_daemon so that if it detects
cancellation, it sends the remaining data in its output buffer
instead of discarding it. (This also fixes another edge case
to do with sending partial data although I don't think we
ever saw that in practice).
(cherry picked from commit
c7368ce167d6dbfd3e69ba208301c5af3f17a8a1)
Richard W.M. Jones [Fri, 18 Mar 2011 11:22:25 +0000 (11:22 +0000)]
regressions: Enable both tests for bug 576879 (not fixed).
(cherry picked from commit
dc8e4b057ecd3984d7c27c8ece54048b6a06d662)
Richard W.M. Jones [Fri, 18 Mar 2011 11:19:31 +0000 (11:19 +0000)]
haskell: Small fixes for ghc 7.
(cherry picked from commit
502a98948c1bade2969758aff3db09869481105a)
Richard W.M. Jones [Thu, 17 Mar 2011 12:46:57 +0000 (12:46 +0000)]
regressions: Rename the file we are uploading too.
This updates commit
cbd8da6d4dd2e4cbc3b87fbc7cb7d6129eb69172.
(cherry picked from commit
e34fc32092e18b38282306558dcef66263a0fb10)
Richard W.M. Jones [Thu, 17 Mar 2011 11:57:40 +0000 (11:57 +0000)]
regressions: Split the test rhbz576879.sh into two halves.
We suspect that there are in fact two separate bugs. In any
case it makes sense for the two tests to be done separately.
Note that these tests still fail.
(cherry picked from commit
cbd8da6d4dd2e4cbc3b87fbc7cb7d6129eb69172)
Angus Salkeld [Tue, 15 Mar 2011 11:43:02 +0000 (22:43 +1100)]
check the pid is > 0 before calling waitpid()
Signed-off-by: Angus Salkeld <asalkeld@redhat.com>
(cherry picked from commit
d1f1f74e5f45fa5b94ebb096fa65fa33ecc23d09)
Angus Salkeld [Mon, 14 Mar 2011 11:40:12 +0000 (22:40 +1100)]
check the pid is > 0 before calling waitpid()
Signed-off-by: Angus Salkeld <asalkeld@redhat.com>
(cherry picked from commit
6f7c1a9f9d76bdf9f112e12e1508531fb41abfb2)
Richard W.M. Jones [Fri, 11 Mar 2011 10:47:05 +0000 (10:47 +0000)]
RHEL5: Old pod2man didn't have --stderr or -u options.
(cherry picked from commit
eb304e9689ca474834207605ed52c369bcdec6ea)
Richard W.M. Jones [Fri, 11 Mar 2011 10:23:58 +0000 (10:23 +0000)]
configure: Remove unnecessary variable assignment.
Left over from pre-virtio-serial days.
(cherry picked from commit
97eab125fa8e3dc481c1f1ba1a847cf43d537585)
Richard W.M. Jones [Fri, 11 Mar 2011 10:22:58 +0000 (10:22 +0000)]
RHEL5: Make use of 'futimens' function optional.
(cherry picked from commit
003fbdfe5d8b237f42f575199b742c8dde9b8a11)
Richard W.M. Jones [Tue, 8 Mar 2011 15:27:26 +0000 (15:27 +0000)]
Version 1.8.2.
Richard W.M. Jones [Tue, 8 Mar 2011 08:10:19 +0000 (08:10 +0000)]
Detect Red Hat Desktop as 'rhel' distro (RHBZ#682979).
/etc/redhat-release on Red Hat Desktop contains the following
string:
Red Hat Desktop release 4 (Nahant Update 8)
Previously we matched against the string "Red Hat Enterprise Linux"
but since this does not contain that string, this distro wasn't being
detected correctly.
Note this also changes the obsolete Perl code, for the benefit of
virt-v2v.
(cherry picked from commit
c1a227a960066fb9552e0c225bc473be365b67b0)
Richard W.M. Jones [Mon, 7 Mar 2011 19:30:31 +0000 (19:30 +0000)]
Include <locale.h> in compilation units that use setlocale function.
Fix required by gcc 4.6.0.
(cherry picked from commit
a9d6b948b590f58023a97dddd76302e40d49d2e2)
Richard W.M. Jones [Mon, 7 Mar 2011 19:28:30 +0000 (19:28 +0000)]
generator: Introduce error code (errcode) concept.
There was a lot of repeated code to map return types (eg. RErr)
to error cases (eg. -1 or NULL).
This commit introduces an error code type and two functions to
map return types to error codes and error codes to strings.
Cherry picked from commit
8037da06feea097716ce700f38c0eac0d5411a7c
and rebased against stable 1.8 branch.
Richard W.M. Jones [Sat, 5 Mar 2011 09:17:41 +0000 (09:17 +0000)]
debian: Rename nilfs2-tools to nilfs-tools.
(cherry picked from commit
1c772c921186be34331c7610992f57a69d20d908)