Error: "Fatal Error: Object Already Exists" when using zlman to add a package to a bundle.

(Last modified: 07Jun2006)

This document (10100116) is provided subject to the disclaimer at the end of this document.

fact

Novell ZENworks 7 Linux Management - ZLM7

symptom

Error: "Fatal Error: Object Already Exists" when using zlman to add a package to a bundle.

Unable to add a package to a bundle using ZCC. No error is returned but the package is not added to the bundle.

ZLMMIRROR returns Error: "An error occured while trying to add the package 'package-name' to the bundle 'bundle-name'
(com.novell.zenworks.zlman.services.pgkmgt.admin.ObjectAlreadyExistsFault={})"

ZLMMIRROR returns SOAP Fault: "Different package with the same NEVRAT already exists" located in the services-messages.log file.

cause

Two packages have the same NEVRAT (Name, Epoch, Version, Release, Architechure, and Targert) but different sha1sum hashes.

fix

Workaround:

a) if the package is not of interest, it can be excluded from the mirroring via the <ExcludeBundle/> and <ExcludeTarget/> zlmmirror.conf options - use bundle exclusion for ZLM and YAST source servers only, and ExcludeTarget otherwise, the value of either tag being the package/patch/bundle to exclude from the mirroring.

b) if the package is of interest, it must be first retrieved to the filesystem - this can be accomplished in a variety of ways, including static mirroring (refer to zlmmirror documentation for further details). Once the given rpm is available on the server's filesystem, it is possible to import it into the server via the zlman prp (package-replace-package) command.

The syntax for the prp command is as follows:

zlman prp <target> <rpmfile>

An example of this usage is listed below:

zlman prp sles-9-i586 /root/nrmtest-same-nevrat-b.rpm
Username:administrator
Password:******
[package.command.replacePackage.success]

Reported to Novell Engineering

note

USING PRP WILL RESULT IN THE EXISTING PACKAGE HAVING THE SAME NEVRAT BEING REPLACED BY THE NEW ONE IN ALL BUNDLES IT IS A MEMBER OF.

NEVRAT are the six fields used to form a unique identifier of an RPM package. While this identifier is guaranteed to be unique to a given rpm, this guarantee can be violated under two
scenarios:

a) A corrupted rpm file was downloaded - and therefore the checksum of this new rpm does not match the known checksum of the same rpm, as identified via NEVRAT

b) A vendor incorrectly released an improperly formatted update rpm package, with newer (different) contents but still identifying itself with the same version and release numbers - this results in a different checksum being encountered for what the system identifies as the same package on NEVRAT grounds. This is exceedingly rare, but it does occur on occasion and it is most often encountered when doing bulk mirroring of entire distributions.

document

Document Title: Error: "Fatal Error: Object Already Exists" when using zlman to add a package to a bundle.
Document ID: 10100116
Solution ID: NOVL104760
Creation Date: 10Jan2006
Modified Date: 07Jun2006
Novell Product Class:Management Products

disclaimer

The Origin of this information may be internal or external to Novell. Novell makes all reasonable efforts to verify this information. However, the information provided in this document is for your information only. Novell makes no explicit or implied claims to the validity of this information.
Any trademarks referenced in this document are the property of their respective owners. Consult your product manuals for complete trademark information.