Bug 495793

Summary: dependency / download issues with RPM with + sign in RPM name
Product: [Community] Spacewalk Reporter: Matt Carey <cvstealth2000>
Component: ServerAssignee: Michael Mráka <mmraka>
Status: CLOSED CURRENTRELEASE QA Contact: Red Hat Satellite QA List <satqe-list>
Severity: medium Docs Contact:
Priority: low    
Version: 0.5CC: cperry, johnh, mmraka
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
URL: https://www.redhat.com/archives/spacewalk-list/2009-April/msg00159.html
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2010-01-27 21:38:36 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 543511    

Description Matt Carey 2009-04-14 19:56:20 UTC
Description of problem: When updating a package with a + sign in the RPM name it gives a 404 on the download link in the webui and yum update fails to associate the dependencies.


Version-Release number of selected component (if applicable):
Spacewalk version .5
Spacewalk server: CentOS 5.3 x86
Spacewalk client: CentOS 5.2 x86_64
Oracle XE: 10.2.0.1-1.0

How reproducible:
Have a CentOS 5.2 client and have it associated with a channel that has been reposynced with the contents of a CentOS 5.3 branch. On the client try to update a package that has a + sign in it. I've found libstdc++,libstdc++-devel, gcc-c++ and dvd+rw-tools all don't work. You can also go into the webgui for any of the above mentioned RPMs select the download link for the RPM and it will return a "404 Error - File Not Found

The requested page can not be found.

Please report this error to your local administrator." For all other RPMs that don't have a + sign in the name the download link works flawlessly and yum update on the client finishes successfully. 

Steps to Reproduce:
1. Setup CentOS 5.2 client attach to a Spacewalk channel that has the RPMs for CentOS 5.2
2. Try to run yum update .
3. Try to wget an RPM from the webgui that has a + sign in the RPM name. 
  
Actual results:
[root@brian src]# yum repolist
Loading "fastestmirror" plugin
Loading "rhnplugin" plugin
repo id              repo name                                 status
centos5-base-x86_64  None                                      enabled
centos5-updates-x86_ None                                      enabled
spacewalk-client-too None                                      enabled

[root@brian ~]# yum list libstdc++
Loading "fastestmirror" plugin
Loading "rhnplugin" plugin
Loading mirror speeds from cached hostfile
 * spacewalk-client-tools-x86_64-5: spacewalk.example.com
 * centos5-updates-x86_64: spacewalk.example.com
 * centos5-base-x86_64: spacewalk.example.com
spacewalk-client-tools-x8 100% |=========================|  871 B    00:00     
centos5-updates-x86_64    100% |=========================|  871 B    00:00     
centos5-base-x86_64       100% |=========================|  871 B    00:00     
Installed Packages
libstdc++.x86_64                         4.1.2-42.el5           installed       
libstdc++.i386                           4.1.2-42.el5           installed       
Available Packages
libstdc++.x86_64                         4.1.2-44.el5           centos5-base-x86
libstdc++.i386                           4.1.2-44.el5           centos5-base-x86

[root@brian src]# yum info libstdc++
Loading "fastestmirror" plugin
Loading "rhnplugin" plugin
Loading mirror speeds from cached hostfile
 * spacewalk-client-tools-x86_64-5: spacewalk.example.com
 * centos5-updates-x86_64: spacewalk.example.com
 * centos5-base-x86_64: spacewalk.example.com
spacewalk-client-tools-x8 100% |=========================|  871 B    00:00     
centos5-updates-x86_64    100% |=========================|  871 B    00:00     
centos5-base-x86_64       100% |=========================|  871 B    00:00     
Installed Packages
Name   : libstdc++
Arch   : x86_64
Version: 4.1.2
Release: 42.el5
Size   : 951 k
Repo   : installed
Summary: GNU Standard C++ Library
Description:
The libstdc++ package contains a rewritten standard compliant GCC Standard
C++ Library.


Name   : libstdc++
Arch   : i386
Version: 4.1.2
Release: 42.el5
Size   : 904 k
Repo   : installed
Summary: GNU Standard C++ Library
Description:
The libstdc++ package contains a rewritten standard compliant GCC Standard
C++ Library.


Available Packages
Name   : libstdc++
Arch   : x86_64
Version: 4.1.2
Release: 44.el5
Size   : 353 k
Repo   : centos5-base-x86_64
Summary: GNU Standard C++ Library

Description:
The libstdc++ package contains a rewritten standard compliant GCC Standard
C++ Library.


Name   : libstdc++
Arch   : i386
Version: 4.1.2
Release: 44.el5
Size   : 363 k
Repo   : centos5-base-x86_64
Summary: GNU Standard C++ Library

Description:
The libstdc++ package contains a rewritten standard compliant GCC Standard
C++ Library.


[root@brian ~]# yum upgrade libstdc++
Loading "fastestmirror" plugin
Loading "rhnplugin" plugin
Loading mirror speeds from cached hostfile
 * spacewalk-client-tools-x86_64-5: spacewalk.example.com
 * centos5-updates-x86_64: spacewalk.example.com
 * centos5-base-x86_64: spacewalk.example.com
spacewalk-client-tools-x8 100% |=========================|  871 B    00:00     
centos5-updates-x86_64    100% |=========================|  871 B    00:00     
centos5-base-x86_64       100% |=========================|  871 B    00:00     
Setting up Upgrade Process
Resolving Dependencies
--> Running transaction check
--> Processing Dependency: libstdc++ = 4.1.2-42.el5 for package: gcc-c++
--> Processing Dependency: libstdc++ = 4.1.2-42.el5 for package: libstdc++-devel
---> Package libstdc++.i386 0:4.1.2-44.el5 set to be updated
---> Package libstdc++.x86_64 0:4.1.2-44.el5 set to be updated
--> Running transaction check
---> Package gcc-c++.x86_64 0:4.1.2-44.el5 set to be updated
--> Processing Dependency: libstdc++-devel = 4.1.2-44.el5 for package: gcc-c++
--> Processing Dependency: libstdc++ = 4.1.2-44.el5 for package: gcc-c++
--> Processing Dependency: gcc = 4.1.2-44.el5 for package: gcc-c++
---> Package libstdc++-devel.x86_64 0:4.1.2-44.el5 set to be updated
--> Processing Dependency: libstdc++ = 4.1.2-44.el5 for package: libstdc++-devel
--> Finished Dependency Resolution
Error: Missing Dependency: libstdc++ = 4.1.2-44.el5 is needed by package gcc-c++
Error: Missing Dependency: libstdc++ = 4.1.2-44.el5 is needed by package libstdc++-devel
Error: Missing Dependency: libstdc++-devel = 4.1.2-44.el5 is needed by package gcc-c++
Error: Missing Dependency: gcc = 4.1.2-44.el5 is needed by package gcc-c++


RPM with + in the RPM name fails when wgetting the file:
[root@brian src]# wget --no-check-certificate https://spacewalk.example.com/download/package/371013b8dfe80595895d8341be9330dd09fa3b8f/1239773130070/1/10981/libstdc++-4.1.2-44.el5.x86_64.rpm
--19:36:26--  https://spacewalk.example.com/download/package/371013b8dfe80595895d8341be9330dd09fa3b8f/1239773130070/1/10981/libstdc++-4.1.2-44.el5.x86_64.rpm
Resolving spacewalk.example.com... 10.100.0.61
Connecting to spacewalk.example.com|10.100.0.61|:443... connected.
WARNING: cannot verify spacewalk.example.com's certificate, issued by `/C=US/ST=VA/L=Sterling/O=NTTA/OU=OPS/CN=spacewalk':
  Unable to locally verify the issuer's authority.
WARNING: certificate common name `spacewalk' doesn't match requested host name `spacewalk.example.com'.
HTTP request sent, awaiting response... 404 Not Found
19:36:27 ERROR 404: Not Found.


RPM without + in the RPM name successful when wgetting the file:
[root@brian src]# wget --no-check-certificate https://spacewalk/download/package/587102789052a6ad4d29006c9752b38420dbcf4f/1239773703825/1/12172/gcc-4.1.2-44.el5.x86_64.rpm
--19:46:00--  https://spacewalk/download/package/587102789052a6ad4d29006c9752b38420dbcf4f/1239773703825/1/12172/gcc-4.1.2-44.el5.x86_64.rpm
Resolving spacewalk... 10.100.0.61
Connecting to spacewalk|10.100.0.61|:443... connected.
WARNING: cannot verify spacewalk's certificate, issued by `/C=US/ST=VA/L=Sterling/O=NTTA/OU=OPS/CN=spacewalk':
  Unable to locally verify the issuer's authority.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [application/octet-stream]
Saving to: `gcc-4.1.2-44.el5.x86_64.rpm'

    [              <=>                       ] 5,552,941   1.92M/s   in 2.8s   

19:46:03 (1.92 MB/s) - `gcc-4.1.2-44.el5.x86_64.rpm' saved [5552941]



Expected results:
The download link in the webgui should successfully serve up the RPM file. Yum should be able to update the package if it is listed in the output of "yum list".


Additional info:

Comment 1 Michael Mráka 2010-01-27 21:38:36 UTC
This issue can't be reproduced in Spacewalk 0.7 and looks it fixed.
Closing now, feel free to reopen if you disagree.

Comment 2 Michael Mráka 2010-02-16 12:58:29 UTC
Spacewalk 0.8 has been released