Description of problem: In 4.9, hardware info switched from coming from kudzu to coming from hal. Now, when rhn_register calls rhn.sendHardware I get: File "../up2date_client/gui.py", line 311, in onCreateProfilePageNext ret = self.createProfilePageApply() File "../up2date_client/rhnregGui.py", line 624, in createProfilePageApply rhnreg.sendHardware(self.systemId, self.hardware) File "/home/dbenamy/rhn-svn/rhn_register-overhaul/client/rhn-client-tools/src/up2date_client/rhnreg.py", line 409, in sendHardware rpcServer.doCall(s.registration.add_hw_profile, systemId, hardwareList) File "/home/dbenamy/rhn-svn/rhn_register-overhaul/client/rhn-client-tools/src/up2date_client/rpcServer.py", line 233, in doCall ret = apply(method, args, kwargs) File "/usr/lib/python2.4/xmlrpclib.py", line 1096, in __call__ return self.__send(self.__name, args) File "/home/dbenamy/rhn-svn/rhn_register-overhaul/client/rhn-client-tools/src/up2date_client/rpcServer.py", line 43, in _request1 ret = self._request(methodname, params) File "/usr/lib/python2.4/site-packages/rhn/rpclib.py", line 325, in _request request = self._req_body(params, methodname) File "/usr/lib/python2.4/site-packages/rhn/rpclib.py", line 232, in _req_body return xmlrpclib.dumps(params, methodname, encoding=self._encoding) File "/usr/lib/python2.4/xmlrpclib.py", line 1029, in dumps data = m.dumps(params) File "/usr/lib/python2.4/xmlrpclib.py", line 603, in dumps dump(v, write) File "/usr/lib/python2.4/xmlrpclib.py", line 615, in __dump f(self, value, write) File "/usr/lib/python2.4/xmlrpclib.py", line 675, in dump_array dump(v, write) File "/usr/lib/python2.4/xmlrpclib.py", line 615, in __dump f(self, value, write) File "/usr/lib/python2.4/xmlrpclib.py", line 696, in dump_struct dump(v, write) File "/usr/lib/python2.4/xmlrpclib.py", line 615, in __dump f(self, value, write) File "/usr/lib/python2.4/xmlrpclib.py", line 641, in dump_long raise OverflowError, "long int exceeds XML-RPC limits" This is on fc5. I'm working in my rhn_register-overhaul branch but I'm assuming this will happen in the old one too. How reproducible: Every time.
Ron and I did some testing and didn't see any very big numbers being pulled out of hal.
XMLRPC defines an int as 4 bytes, and provides no larger number type. In this case, there was a long that was too long to fit into these 4 bytes.
This isn't going to happen anymore, since the processing of this data occurs on the client side now.