Bug 487412 - NEVRA Problems with export & sat sync
NEVRA Problems with export & sat sync
Status: CLOSED DUPLICATE of bug 484305
Product: Red Hat Satellite 5
Classification: Red Hat
Component: Server (Show other bugs)
530
All Linux
low Severity medium
: ---
: ---
Assigned To: Pradeep Kilambi
John Matthews
:
Depends On:
Blocks: 457078
  Show dependency treegraph
 
Reported: 2009-02-25 16:04 EST by John Matthews
Modified: 2009-03-04 23:59 EST (History)
1 user (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2009-03-04 19:05:34 EST
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)
This is an export of 2 custom channels each with 1 package each sharing same NEVRA (21.44 KB, application/x-bzip)
2009-02-25 16:08 EST, John Matthews
no flags Details

  None (edit)
Description John Matthews 2009-02-25 16:04:46 EST
Description of problem:

I'm seeing an ISE when deleting a package.  I believe this is a NEVRA issue.
Further it looks like the packages are not being imported consistently.

I can add a package and delete it, so this is not a simple problem with deleting custom content.

Background:
On a satellite I created 2 custom channels:
customCentOS & customRHEL
I rhnpushed "helios" to each CentOS & RHEL channel, I pushed the respective version of each to it's channel.
Now I have 2 custom channels each containing a single package which shares the same NEVRA info.
I export both channels in one export command.
I tar up the data.
I copy it to a new install of Sat 5.3.0
I untar the export
run satsync with both channels.

Note: I saw "unscriptable object" once, it hasn't show up again


Looking in the WebUI I see 2 channels were created, one for RHEL and one for CentOS.
Both channels have the same package in them, the CentOS package.
The RHEL package is left as unmanaged.

When I attempt to delete the "RHEL" package it is deleted.  This is the "unmanaged" package.
When I attempt to delete the "CentOS" package, the managed one in both channels, I get an ISE.

2009-02-25 15:50:33,469 [TP-Processor7] ERROR org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/rhn].[action] - Servlet.service() for servlet action thr
ew exception
java.sql.SQLException: ORA-00001: unique constraint (RHNSAT.RHN_PFDQUEUE_PATH_UQ) violated

        at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
        at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)
        at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288)
        at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:745)
        at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:219)
        at oracle.jdbc.driver.T4CPreparedStatement.executeForRows(T4CPreparedStatement.java:970)
        at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1190)
        at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3370)
        at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:3476)
        at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.execute(NewProxyPreparedStatement.java:651)
        at com.redhat.rhn.common.db.NamedPreparedStatement.execute(NamedPreparedStatement.java:137)
        at com.redhat.rhn.common.db.datasource.CachedStatement.execute(CachedStatement.java:454)
        at com.redhat.rhn.common.db.datasource.CachedStatement.execute(CachedStatement.java:431)
        at com.redhat.rhn.common.db.datasource.CachedStatement.executeUpdate(CachedStatement.java:269)
        at com.redhat.rhn.common.db.datasource.WriteMode.executeUpdate(WriteMode.java:33)
        at com.redhat.rhn.manager.rhnpackage.PackageManager.schedulePackageFileForDeletion(PackageManager.java:735)
        at com.redhat.rhn.manager.rhnpackage.PackageManager.deletePackages(PackageManager.java:1036)
        at com.redhat.rhn.frontend.action.rhnpackage.CustomPackagesDeleteConfirmAction.deletePackages(CustomPackagesDeleteConfirmAction.java:103)
        at com.redhat.rhn.frontend.action.rhnpackage.CustomPackagesDeleteConfirmAction.execute(CustomPackagesDeleteConfirmAction.java:80)
        at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
        at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:237)
        at com.redhat.rhn.frontend.struts.RhnRequestProcessor.process(RhnRequestProcessor.java:82)





Version-Release number of selected component (if applicable):
Satellite-5.3.0-RHEL5-re20090220.1-i386-embedded-oracle.iso
Installed using QA's install-sat.sh
NFS mounting /var/satellite using QA exports

How reproducible:
Seems consistent, reproduced on 2 Satellites.  Requires the export*.tar.bz2 I am attaching.

Steps to Reproduce:
1. sat-sync with attached export
2. delete both custom channels
3. delete the package which is not in either channel, deletes fine
4. delete the package which is in both channels, see ISE

Actual results:
get ISE

Expected results:
no ISE

Additional info:

I'm seeing some odd behavior where I can't delete the packages.  Then I rhnpush some more content, go back and I can delete the trouble package.  I haven't been able to identify enough of this behavior to make sense of it.
Comment 1 John Matthews 2009-02-25 16:08:24 EST
Created attachment 333229 [details]
This is an export of 2 custom channels each with 1 package each sharing same NEVRA
Comment 2 Brandon Perkins 2009-03-04 14:26:36 EST
There was some discussion (outside of Bugzilla apparently), that we are not planning on supporting this scenario for Satellite.  I don't understand this and I feel this is a blocker.  Let's take RHEL out of the equation here.  I can see a situation where a customer has two channels, one beta and one production.  They want to sign the beta packages with a beta key and put them into the beta channel.  Turns out that particular NVREA is a good one, so they sign the package with their beta package with a production key and then put them into the production channel  (which is now supported with NEVRA).  Now I export those channels and want to Sat Sync onto another Satellite.  Well, now its busted.  We would need more information on why this case couldn't be supported.  Apparently the exporter is doing the right thing but satellite-sync isn't.

Note You need to log in before you can comment on or make changes to this bug.