On Tue, Jul 10, 2012 at 02:42:13PM +0800, Osier Yang wrote: > On 2012年07月10日 13:21, Guido Günther wrote: > >This makes the driver fail with a clear error message in case of uuid > >collisions (for example if somebody copied a container configuration > >without updating the UUID). > > > >OpenVZ itself doesn't complain about duplicate UUIDs since this > >parameter is only used by libvirt. > >--- > > src/openvz/openvz_conf.c | 5 ++++- > > 1 file changed, 4 insertions(+), 1 deletion(-) > > > >diff --git a/src/openvz/openvz_conf.c b/src/openvz/openvz_conf.c > >index 503c8a0..0764c2c 100644 > >--- a/src/openvz/openvz_conf.c > >+++ b/src/openvz/openvz_conf.c > >@@ -684,8 +684,11 @@ int openvzLoadDomains(struct openvz_driver *driver) { > > openvzReadMemConf(dom->def, veid); > > > > virUUIDFormat(dom->def->uuid, uuidstr); > >- if (virHashAddEntry(driver->domains.objs, uuidstr, dom)< 0) > >+ if (virHashAddEntry(driver->domains.objs, uuidstr, dom)< 0) { > >+ openvzError(VIR_ERR_INTERNAL_ERROR, > >+ _("Could not add UUID for container %d"), veid); > > goto cleanup; > >+ } > > It's good to have a clear error for the UUID collisions, but > it's not the only reason for failure of virHashAddEntry. It > could be the memory allocation error too. So The better fix > is to check the UUID duplication explicitly with virHashLookup > before adding it to the table, (virHashAddOrUpdateEntry reports > the memory allocation error anyway, so we just need to care > about the UUID conllisions, and actually the memory error > could be overriden with this patch). Agreed, you need to check for collisions before adding the entry, otherwise you obscure other relevant error messages. Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :| -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list