Red Hat Bugzilla – Bug 994531
rhn_check exception: OverflowError, "int exceeds XML-RPC limits"
Last modified: 2013-11-21 18:15:38 EST
Created attachment 783895 [details] up2date log rhn_check tracebacks on rhel6.4/ppc64 (rhn-check-1.0.0.1-4.el6.noarch): # rhn_check -vvv D: opening db environment /var/lib/rpm cdb:mpool:joinenv D: opening db index /var/lib/rpm/Packages rdonly mode=0x0 D: locked db index /var/lib/rpm/Packages D: loading keyring from pubkeys in /var/lib/rpm/pubkeys/*.key D: couldn't find any keys in /var/lib/rpm/pubkeys/*.key D: loading keyring from rpmdb D: opening db index /var/lib/rpm/Name rdonly mode=0x0 D: added key gpg-pubkey-fd431d51-4ae0493b to keyring D: added key gpg-pubkey-2fa658e0-45700c69 to keyring D: Using legacy gpg-pubkey(s) from rpmdb D: opening db index /var/lib/rpm/Providename rdonly mode=0x0 An error has occurred: <type 'exceptions.OverflowError'> See /var/log/up2date for more information D: closed db index /var/lib/rpm/Providename D: closed db index /var/lib/rpm/Name D: closed db index /var/lib/rpm/Packages D: closed db environment /var/lib/rpm from /var/log/up2date (full log attched): [Wed Aug 7 08:07:12 2013] up2date Traceback (most recent call last): File "/usr/sbin/rhn_check", line 378, in <module> cli.run() File "/usr/share/rhn/up2date_client/rhncli.py", line 84, in run sys.exit(self.main() or 0) File "/usr/sbin/rhn_check", line 75, in main self.__run_remote_actions() File "/usr/sbin/rhn_check", line 169, in __run_remote_actions action = self.__get_action(status_report) File "/usr/sbin/rhn_check", line 87, in __get_action ACTION_VERSION, status_report) File "/usr/lib64/python2.6/xmlrpclib.py", line 1199, in __call__ return self.__send(self.__name, args) File "/usr/share/rhn/up2date_client/rpcServer.py", line 39, in _request1 ret = self._request(methodname, params) File "/usr/lib/python2.6/site-packages/rhn/rpclib.py", line 379, in _request request = self._req_body(self._strip_characters(params), methodname) File "/usr/lib/python2.6/site-packages/rhn/rpclib.py", line 234, in _req_body return xmlrpclib.dumps(params, methodname, encoding=self._encoding) File "/usr/lib64/python2.6/xmlrpclib.py", line 1132, in dumps data = m.dumps(params) File "/usr/lib64/python2.6/xmlrpclib.py", line 677, in dumps dump(v, write) File "/usr/lib64/python2.6/xmlrpclib.py", line 699, in __dump f(self, value, write) File "/usr/lib64/python2.6/xmlrpclib.py", line 780, in dump_struct dump(v, write) File "/usr/lib64/python2.6/xmlrpclib.py", line 699, in __dump f(self, value, write) File "/usr/lib64/python2.6/xmlrpclib.py", line 759, in dump_array dump(v, write) File "/usr/lib64/python2.6/xmlrpclib.py", line 699, in __dump f(self, value, write) File "/usr/lib64/python2.6/xmlrpclib.py", line 710, in dump_int raise OverflowError, "int exceeds XML-RPC limits" <type 'exceptions.OverflowError'>: int exceeds XML-RPC limits Let me know if you need additional info to be able to debug this.
What happens here is: 1. machine with many cpus 2. the cpus spent a lot of time idle (sum of idle times) 3. rhn_check tries to send content of /proc/uptime to the parent Satellite 4. the idle value from /proc/uptime won't fit into the limits of XML-RPC integer (32 bit signed int) This needs to be fixed, as there's no immediate resolution nor workaround to this problem, other than rebooting the affected machine.
spacewalk.git master: b258e06ea3329b6782fdd21db77939380b3a85ca
VERIFIED. rhn-check-1.0.0.1-16.el6.noarch For the reproducer you need a machine where idle value (2nd number from /proc/uptime) is greater than max signed int (2^31-1) # IDLE=$(cat /proc/uptime | sed "s/^.* \(.\+\)\..\+$/\1/") # echo $(($IDLE > 2**31-1)) 1 I've found 3 machines having idle values high enough to reproduce the issue (ppc machines seem to have high idle values): ibm-p750e-01-lp1.rhts.eng.bos.redhat.com ibm-p750e-02-lp1.rhts.eng.bos.redhat.com ibm-p730-01-lp4.lab.eng.brq.redhat.com (used this) REPRO: # rhn_check -vv An error has occurred: <type 'exceptions.OverflowError'> See /var/log/up2date for more information [Thu Oct 31 09:53:12 2013] up2date Traceback (most recent call last): File "/usr/sbin/rhn_check", line 378, in <module> cli.run() File "/usr/share/rhn/up2date_client/rhncli.py", line 84, in run sys.exit(self.main() or 0) File "/usr/sbin/rhn_check", line 75, in main self.__run_remote_actions() File "/usr/sbin/rhn_check", line 169, in __run_remote_actions action = self.__get_action(status_report) File "/usr/sbin/rhn_check", line 87, in __get_action ACTION_VERSION, status_report) File "/usr/lib64/python2.6/xmlrpclib.py", line 1199, in __call__ return self.__send(self.__name, args) File "/usr/share/rhn/up2date_client/rpcServer.py", line 39, in _request1 ret = self._request(methodname, params) File "/usr/lib/python2.6/site-packages/rhn/rpclib.py", line 379, in _request request = self._req_body(self._strip_characters(params), methodname) File "/usr/lib/python2.6/site-packages/rhn/rpclib.py", line 234, in _req_body return xmlrpclib.dumps(params, methodname, encoding=self._encoding) File "/usr/lib64/python2.6/xmlrpclib.py", line 1132, in dumps data = m.dumps(params) File "/usr/lib64/python2.6/xmlrpclib.py", line 677, in dumps dump(v, write) File "/usr/lib64/python2.6/xmlrpclib.py", line 699, in __dump f(self, value, write) File "/usr/lib64/python2.6/xmlrpclib.py", line 780, in dump_struct dump(v, write) File "/usr/lib64/python2.6/xmlrpclib.py", line 699, in __dump f(self, value, write) File "/usr/lib64/python2.6/xmlrpclib.py", line 759, in dump_array dump(v, write) File "/usr/lib64/python2.6/xmlrpclib.py", line 699, in __dump f(self, value, write) File "/usr/lib64/python2.6/xmlrpclib.py", line 710, in dump_int raise OverflowError, "int exceeds XML-RPC limits" <type 'exceptions.OverflowError'>: int exceeds XML-RPC limits vs. FIX: # rhn_check -vv D: do_call packages.checkNeedUpdate('rhnsd=1',){} Loaded plugins: product-id, rhnplugin D: login(forceUpdate=False) invoked D: readCachedLogin invoked D: Checking pickled loginInfo, currentTime=1383229117.12, createTime=1383228425.17, expire-offset=3600.0 D: readCachedLogin(): using pickled loginInfo set to expire at 1383232025.17 D: rpcServer: Calling XMLRPC up2date.listChannels This system is receiving updates from RHN Classic or RHN Satellite. D: local action status: (0, 'rpm database not modified since last update (or package list recently updated)', {}) D: rpcServer: Calling XMLRPC registration.welcome_message
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. http://rhn.redhat.com/errata/RHBA-2013-1702.html