Bug 562644 - Server on Fedora 12 doesn't send capabilities
Summary: Server on Fedora 12 doesn't send capabilities
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: Spacewalk
Classification: Community
Component: Server
Version: 0.8
Hardware: All
OS: Linux
urgent
medium
Target Milestone: ---
Assignee: Michael Mráka
QA Contact: Red Hat Satellite QA List
URL:
Whiteboard:
Depends On:
Blocks: space08
TreeView+ depends on / blocked
 
Reported: 2010-02-07 20:04 UTC by Michael Mráka
Modified: 2010-02-16 12:59 UTC (History)
0 users

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2010-02-16 12:56:24 UTC
Embargoed:


Attachments (Terms of Use)

Description Michael Mráka 2010-02-07 20:04:55 UTC
Description of problem:
Doing spacewalk 0.8 release test I failed to register F12 and F11 clients to F12 server.
Registering to F12 client to RHEL5 server or RHEL5 client to F12 server works.

Version-Release number of selected component (if applicable):
server:
spacewalk-backend-0.8.43-1.fc12.noarch
client:
yum-rhn-plugin-0.8.5-1.fc11.noarch
rhn-client-tools-0.8.10-1.fc11.i586

How reproducible:
always

Steps to Reproduce:
1. setup spacewalk server on Fedora 12
2. register Fedora 12 client to the server
3.
  
Actual results:
# rhnreg_ks --server http://hp-z200-05.rhts.eng.bos.redhat.com/XMLRPC --activationkey 1-fedora11-i386 --force
An error has occurred:

Error Class Code: 21
Error Class Info: Invalid arguments passed to function.
Explanation: 
     An error has occurred while processing your request. If this problem
     persists please enter a bug report at bugzilla.redhat.com.
     If you choose to submit the bug report, please be sure to include
     details of what you were trying to do when this error occurred and
     details on how to reproduce this problem.

See /var/log/up2date for more information

/varlog/up2date:
Traceback (most recent call last):
  File "/usr/sbin/rhnreg_ks", line 218, in <module>
    cli.run()
  File "/usr/share/rhn/up2date_client/rhncli.py", line 66, in run
    sys.exit(self.main() or 0)
  File "/usr/sbin/rhnreg_ks", line 162, in main
    rhnreg.sendPackages(systemId, packageList)
  File "/usr/share/rhn/up2date_client/rhnreg.py", line 614, in sendPackages
    s.registration.add_packages(systemId, packageList)
  File "/usr/share/rhn/up2date_client/rhnserver.py", line 52, in __call__
    raise self.__exception_from_fault(f)
up2date_client.up2dateErrors.CommunicationError: Error communicating with server. The message was:

Error Class Code: 21
Error Class Info: Invalid arguments passed to function.
Explanation: 
     An error has occurred while processing your request. If this problem
     persists please enter a bug report at bugzilla.redhat.com.
     If you choose to submit the bug report, please be sure to include
     details of what you were trying to do when this error occurred and
     details on how to reproduce this problem.

On server side:
[root@hp-z200-05 ~]# tail -f /var/log/rhn/rhn_server_xmlrpc.log
2010/02/07 14:54:03 -04:00 7270 10.10.76.130: xmlrpc/registration._normalize_packages('ERROR', 'Invalid package spec for extended_profile >= 2', <type 'list'>, 'len = 4')

Expected results:
registration works

Additional info:
Server capabilities received on client from F12 server:
 {'xmlrpc.login.extra_data': {'version': '1', 'value': '1'}}
while from RHEL5 server:
{'registration.finish_message': {'version': '1', 'value': '1'}, 'registration.remaining_subscriptions': {'version': '1', 'value': '1'}, 'registration.update_contact_info': {'version': '1', 'value': '1'}, 'applet.has_base_channel': {'version': '1', 'value': '1'}, 'registration.smbios': {'version': '1', 'value': '1'}, 'registration.extended_update_support': {'version': '1', 'value': '1'}, 'registration.register_osad': {'version': '1', 'value': '1'}, 'rhncfg.content.base64_decode': {'version': '1', 'value': '1'}, 'rhncfg.filetype.directory': {'version': '1', 'value': '1'}, 'registration.delta_packages': {'version': '1', 'value': '1'}, 'xmlrpc.packages.extended_profile': {'version': '1-2', 'value': '1'}, 'xmlrpc.login.extra_data': {'version': '1', 'value': '1'}}

Registration fails 'cause of missing 'xmlrpc.packages.extended_profile': {'version': '1-2', 'value': '1'}.
{'xmlrpc.login.extra_data': {'version': '1', 'value': '1'}}

Comment 1 Michael Mráka 2010-02-10 14:53:17 UTC
So I added log messages to apacheRequest.response() function (lines 351 amd 359 of server/apacheRequest.py) and the difference is:

RHEL5 server:
2010/02/10 14:42:05 +02:00 11814 10.10.76.130: server/apacheRequest.response('output.headers', {'content-length': '121', 'x-rhn-server-capability': ['registration.finish_message(1)=1', 'registration.remaining_subscriptions(1)=1', 'registration.update_contact_info(1)=1', 'applet.has_base_channel(1)=1', 'registration.smbios(1)=1', 'registration.extended_update_support(1)=1', 'rhncfg.filetype.directory(1)=1', 'rhncfg.content.base64_decode(1)=1', 'registration.register_osad(1)=1', 'registration.delta_packages(1)=1', 'xmlrpc.packages.extended_profile(1-2)=1', 'xmlrpc.login.extra_data(1)=1'], 'x-rhn-proxy-version': '0', 'x-transport-info': 'Extended Capabilities Transport (C) Red Hat, Inc (version $Revision$)', 'x-rhn-client-version': '1'})
2010/02/10 14:42:05 +02:00 11814 10.10.76.130: server/apacheRequest.response('self.req.headers_out', {'X-RHN-Client-Version': '1', 'X-Transport-Info': 'Extended Capabilities Transport (C) Red Hat, Inc (version $Revision$)', 'X-RHN-Proxy-Version': '0', 'X-RHN-Server-Capability': 'xmlrpc.login.extra_data(1)=1', 'X-RHN-Server-Capability': 'xmlrpc.packages.extended_profile(1-2)=1', 'X-RHN-Server-Capability': 'registration.delta_packages(1)=1', 'X-RHN-Server-Capability': 'registration.register_osad(1)=1', 'X-RHN-Server-Capability': 'rhncfg.content.base64_decode(1)=1', 'X-RHN-Server-Capability': 'rhncfg.filetype.directory(1)=1', 'X-RHN-Server-Capability': 'registration.extended_update_support(1)=1', 'X-RHN-Server-Capability': 'registration.smbios(1)=1', 'X-RHN-Server-Capability': 'applet.has_base_channel(1)=1', 'X-RHN-Server-Capability': 'registration.update_contact_info(1)=1', 'X-RHN-Server-Capability': 'registration.remaining_subscriptions(1)=1', 'X-RHN-Server-Capability': 'registration.finish_message(1)=1', 'Content-Length': '121'})

F12 server:
2010/02/10 08:21:12 -04:00 23863 10.10.76.130: server/apacheRequest.response('output.hea
ders', {'content-length': '770', 'x-rhn-server-capability': ['registration.finish_messag
e(1)=1', 'applet.has_base_channel(1)=1', 'rhncfg.filetype.directory(1)=1', 'registration
.register_osad(1)=1', 'registration.delta_packages(1)=1', 'xmlrpc.packages.extended_prof
ile(1-2)=1', 'registration.remaining_subscriptions(1)=1', 'registration.update_contact_i
nfo(1)=1', 'registration.extended_update_support(1)=1', 'rhncfg.content.base64_decode(1)
=1', 'registration.smbios(1)=1', 'xmlrpc.login.extra_data(1)=1'], 'content-encoding': 'x
-zlib', 'content-transfer-encoding': 'base64', 'x-rhn-proxy-version': 'None', 'x-transpo
rt-info': 'Extended Capabilities Transport (C) Red Hat, Inc (version $Revision$)', 'x-rh
n-client-version': '1', 'connection': 'close', 'content-type': 'text/base64'})
2010/02/10 08:21:12 -04:00 23863 10.10.76.130: server/apacheRequest.response('self.req.h
eaders_out', {'Content-Length': '770', 'X-RHN-Server-Capability': 'xmlrpc.login.extra_da
ta(1)=1', 'Content-Encoding': 'x-zlib', 'Content-Transfer-Encoding': 'base64', 'X-RHN-Pr
oxy-Version': 'None', 'X-Transport-Info': 'Extended Capabilities Transport (C) Red Hat, 
Inc (version $Revision$)', 'X-RHN-Client-Version': '1', 'Connection': 'close'})

Comment 2 Michael Mráka 2010-02-10 22:17:51 UTC
On RHEL5 (mod_python) type(self.req.headers_out) is mp_table, while on F12 (mod_wsgi) type(self.req.headers_out) is  WsgiDict (which is subclass of dict).
mp_table allows several items with the same key while dict not.

Comment 3 Michael Mráka 2010-02-10 23:05:58 UTC
Fixed by
commit eb52be366419c4faa146434af2441bfe53871ff5
    Automatic commit of package [spacewalk-backend] release [0.8.44-1].
commit 320bbbd902e990f3882bc8598f5a834b83ab3070
    562644 - added class to emulate mod_python's mp_table

Comment 4 Michael Mráka 2010-02-16 12:59:46 UTC
Spacewalk 0.8 has been released


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