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'}}
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'})
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.
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
Spacewalk 0.8 has been released