Bug 202849

Summary: OverflowError in rhnreg.sendHardware with hal
Product: Red Hat Satellite 5 Reporter: Daniel Benamy <dbenamy>
Component: RegistrationAssignee: Bryan Kearney <bkearney>
Status: CLOSED CURRENTRELEASE QA Contact: Beth Nackashi <bnackash>
Severity: medium Docs Contact:
Priority: medium    
Version: unspecifiedCC: bkearney, rhn-bugs
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: 5.0.0 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2007-04-02 18:46:26 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: 195697    

Description Daniel Benamy 2006-08-16 19:23:43 UTC
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.

Comment 1 Daniel Benamy 2006-08-16 19:42:52 UTC
Ron and I did some testing and didn't see any very big numbers being pulled out
of hal.

Comment 2 James Bowes 2006-09-08 18:49:35 UTC
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.

Comment 3 James Bowes 2006-09-15 19:39:05 UTC
This isn't going to happen anymore, since the processing of this data occurs on
the client side now.