Description of problem: When scheduling a package verification from Spacewalk on a client that has modified files belonging to 2 packages with same NEVR but different architectures, the scheduled verification action never completes and each attempt generates an Internal Server Error. How reproducible: Always Steps to Reproduce: 1. Populate an x86_64 channel on Spacewalk 2. Install/register a client system using that channel 3. Identify a package on the client that: - has i386 and x86_64 versions - has a modified file (nss should match these requirements on a default install) 4. On Spacewalk, select the client system and go to Software->Packages->Verify 5. Select both versions of the package identified in step 3 and click on 'Verify Selected Packages', then Confirm 6. Run rhn_check -vvv on the client Actual results: The verify action never completes and each attempt generates an Internal Server Error. The traceback email associated with the ISE reveals a problem on the database: 'ORA-00001: unique constraint (RHNSAT.RHN_SACTIONVR_SANEC_UQ) violated\\n' The problem appears to be that this unique index (RHN_SACTIONVR_SANEC_UQ) does not include the package's architecture in its definition for uniqueness. Expected results: Package verifications succeed. Spacewalk should handle multi-arch (same package NEVR and different architecture). Additional info:
Git commit: 24cdb841e3ac11667040de3c4d4ce3a68e5217f7 Added package_arch_id to the index for rhnServerActionVerifyMissing and rhnServerActionVerifyResult. Verified that user could then perform package verification of 2 pkgs with same nevr but differing arch. Scenario: 1. register rhel4 x86_64 client 2. up2date --arch=i386 nss_ldap observe:[root@dhcp77-134 rpm]# rpm -qa --queryformat="%{NAME}.%{ARCH}\\n" |grep nss_ldap nss_ldap.x86_64 nss_ldap.i386 [root@dhcp77-134 rpm]# rpm -qa |grep nss_ldap nss_ldap-253-5.el4 nss_ldap-253-5.el4 3. perform: Software-Packages->Verify: schedule package verification for nss_ldap i386 & x86_64 4. rhn_check -vvv No tracebacks or errors reported to /var/log/httpd/error_log
verified with spacewalk-java-0.4.14-1.el5, spacewalk-schema-0.4.15-1.el5