Fix FileIn cmds losing synch if both ends send cancel messages (RHBZ#576879).
authorRichard Jones <rjones@redhat.com>
Wed, 12 May 2010 18:55:06 +0000 (19:55 +0100)
committerRichard Jones <rjones@redhat.com>
Thu, 13 May 2010 16:08:02 +0000 (17:08 +0100)
commitdc706a639eec16084c0618baf7bfde00c6565f63
treee96751894fe49bf81e704436fc089a173b0f44fc
parent11a2ad8c9a1da7fe7f8142be69312d0cb5979e0a
Fix FileIn cmds losing synch if both ends send cancel messages (RHBZ#576879).

During a FileIn command (eg. upload, tar-in) if both sides
experience errors, then both sides could send cancel messages,
the result being lost synchronization.

The reason for the lost synch was because the daemon was ignoring
this case and sending an error message back which the library side
(which had cancelled) was not expecting.

Fix this by checking in the daemon for the case where the library
also cancels during daemon cancellation, and not sending an error
messages.

This also includes an enhanced regression test which checks for this
case.

This extends the original fix in
commit 5922d7084d6b43f0a1a15b664c7082dfeaf584d0.

More details can be found here:
https://bugzilla.redhat.com/show_bug.cgi?id=576879#c5
daemon/command.c
daemon/daemon.h
daemon/df.c
daemon/inotify.c
daemon/mount.c
daemon/proto.c
daemon/tar.c
daemon/upload.c
regressions/rhbz576879.sh
src/generator.ml