Ensure atomic creation of a cached appliance
authorMatthew Booth <mbooth@redhat.com>
Thu, 28 Oct 2010 14:19:14 +0000 (15:19 +0100)
committerRichard W.M. Jones <rjones@redhat.com>
Thu, 28 Oct 2010 15:47:06 +0000 (16:47 +0100)
commitf2460699ab7f972b1981d072164a04820c52b0c6
treee91d6c4db22202aa57177a0034a74be443d92d82
parent38af2eaceb4c8e9d675835bcd6e598ccb67daf0f
Ensure atomic creation of a cached appliance

Cached appliances are discovered by their predictable path. Previously we were
creating a cached appliance directly in this predictable path. This had at least
2 undesirable effects:

* Interrupting appliance creation would leave a corrupt appliance
* 2 processes could simultaneously attempt to create the same appliance, causing
  corruption.

This patch causes the cached appliance to be created in a temporary directory,
and then renamed to the predictable path. As rename is an atomic operation, this
makes the whole creation atomic.

This patch also changes the predictable path to have a prefix of 'guestfs.'.
This will make it simpler for system administrators to clean up old cached
appliances.

This patch resolves RHBZ#639405
po/POTFILES.in
regressions/Makefile.am
regressions/test-launch-race.pl [new file with mode: 0755]
src/appliance.c