Bug #3391
Some plankton images listed in cyclades fail to be accessed in VM creation
Status: | Closed | Start date: | 03/06/2013 | |
---|---|---|---|---|
Priority: | Medium | Due date: | ||
Assignee: | Georgios Tsoukalas | % Done: | 0% |
|
Category: | Pithos | Spent time: | - | |
Target version: | 0.13.0 |
Description
E.g. the Archlinux public image in okeanos.io.
We investigated with cstavr and narrowed it down to pithos call latest_uuid()
not being able to handle multiple versions with the same UUID correctly.
Related issues
Associated revisions
Fix UUID bug breaking image list and VM creation
latest_uuid(uuid) returned the latest version with the given uuid.
This is called from pithos backend method get_uuid(),
which is called from plankton backend method get_image().
For the use in get_image() the uuid alone is not enough,
since we need the latest version that is accessible,
i.e. not deleted or trashed (in pithos parlance, in CLUSTER_NORMAL)
The problematic scenario is cause by a MOVEing (renaming)
a plankton image to a different name.
Internally, pithos handles a 'move src dest' as a
'copy src dest' + 'delete src'.
Both copy and delete create a new version of the source,
with the same UUID.
We need the 'copy' version but because the delete is executed
after the copy, the 'deleted' version becomes the latest,
thus the one latest_uuid() would return.
This has been fixed by adding a mandatory cluster argument:
latest_uid(uuid, cluster), to which get_uuid() now specifies
CLUSTER_NORMAL.
The previous cluster-unaware behavior can be obtained by
specifying cluster as None.
Refs #3391
History
#1 Updated by Georgios Tsoukalas over 10 years ago
- Status changed from New to Resolved
#2 Updated by Stratos Psomadakis over 10 years ago
- Status changed from Resolved to Closed
Commit pushed in release0.13, and the issue seems to be fixed on okeanos.io.