On RHN Satellite receives traceback with errors, "ORA-04031: unable to allocate 32 bytes of shared memory"

Solution Verified - Updated -

Issue

   Issue

  • Receives traceback with Oracle errors

    ORA-04031: unable to allocate 32 bytes of shared memory
    

  Environment

  • Red Hat Network Satellite v5.x

Resolution

Add the recommended 8GB memory to the server.

http://docs.redhat.com/docs/en-US/Red_Hat_Network_Satellite/5.4/html/Installation_Guide/sect-Installation_Guide-Hardware_Requirements.html

Root Cause

Usually ORA-04031 is related with issues when Oracle needs more shared memory to allocate the resources.

Diagnostic Steps

  • Received following tracebacks:

    Exception reported from xxx.xxx.xxx.xxx
             Time: Tue Oct 18 10:37:27 2011
             Exception type server.rhnSQL.sql_base.SQLError
             Exception while handling function queue.submit
             { .. SNIP .. }
             Extra information about this error:
             SQL Error generated: (4031, 'ORA-04031: unable to allocate 32 bytes of shared memory ("shared pool","select ca.label arch, c.id, ...","sql area","tmp")\n', 'select server_id, label from rhnServerEntitlementView where server_id = :server_id')
    
    Exception Handler Information
    Traceback (most recent call last):
      File "/usr/share/rhn/server/apacheRequest.py", line 120, in call_function
        response = apply(func, params)
      File "/usr/share/rhn/server/handlers/xmlrpc/queue.py", line 404, in submit
        self.auth_system(system_id)
      File "/usr/share/rhn/server/rhnHandler.py", line 73, in auth_system
        entitlements = server.check_entitlement()
      File "/usr/share/rhn/server/rhnServer/server_class.py", line 675, in check_entitlement
        return server_lib.check_entitlement(self.server['id'])
      File "/usr/share/rhn/server/rhnServer/server_lib.py", line 285, in check_entitlement
        h.execute(server_id = server_id)
      File "/usr/share/rhn/server/rhnSQL/sql_base.py", line 168, in execute
        return apply(self._execute_wrapper, (self._execute, ) + p, kw)
      File "/usr/share/rhn/server/rhnSQL/driver_cx_Oracle.py", line 118, in _execute_wrapper
        raise apply(sql_base.SQLError, ret)
    SQLError: (4031, 'ORA-04031: unable to allocate 32 bytes of shared memory ("shared pool","select ca.label arch, c.id, ...","sql area","tmp")\n', 'select server_id, label from rhnServerEntitlementView where server_id = :server_id')
    
    Exception reported from xxx.xxx.xxx.xxx
    Time: Tue Oct 18 13:53:07 2011
    Exception type server.rhnSQL.sql_base.SQLConnectError
    Request object information:
    URI: /XMLRPC
    Remote Host: xxx.xxx.xxx.xxx
    Server Name: xxx.xxx.xxx.xxx
    Headers passed in:
            Accept-Encoding: identity
            Content-Length: 2764
            Host: satellite1.example.com
            content-type: text/xml
            user-agent: rhn.rpclib.py/$Revision$
            x-client-version: 1
            x-info: RPC Processor (C) Red Hat, Inc (version $Revision$)
            x-rhn-client-capability: osad.ping(1)=1,packages.verifyAll(1)=1,packages.verify(1)=1,packages.extended_profile(2)=1,osad.rhn_check(1)=1,configfiles.base64_enc(1)=1,reboot.reboot(1)=1,configfiles.deploy(1)=1,caneatCheese(1)=1,packages.rollBack(1)=1,configfiles.mtime_upload(1)=1,configfiles.diff(1)=1,packages.update(2)=2,script.run(1)=1,configfiles.upload(1)=1,packages.runTransaction(1)=1,osad.ping(1)=1,packages.verifyAll(1)=1,packages.verify(1)=1,packages.extended_profile(2)=1,osad.rhn_check(1)=1,configfiles.base64_enc(1)=1,reboot.reboot(1)=1,configfiles.deploy(1)=1,caneatCheese(1)=1,packages.rollBack(1)=1,configfiles.mtime_upload(1)=1,configfiles.diff(1)=1,packages.update(2)=2,script.run(1)=1,configfiles.upload(1)=1,packages.runTransaction(1)=1
            x-rhn-transport-capability: follow-redirects=3
            x-transport-info: Extended Capabilities Transport (C) Red Hat, Inc (version $Revision$)
            x-up2date-version: 1.0.0-61.el6
    
    Exception Handler Information
    Traceback (most recent call last):
      File "/usr/share/rhn/server/apacheHandler.py", line 84, in headerParserHandler
        rhnSQL.initDB()
      File "/usr/share/rhn/server/rhnSQL/__init__.py", line 121, in initDB
        __init__DB(backend, host, port, username, password, database)
      File "/usr/share/rhn/server/rhnSQL/__init__.py", line 52, in __init__DB
        __DB.connect()
      File "/usr/share/rhn/server/rhnSQL/driver_cx_Oracle.py", line 385, in connect
        raise apply(sql_base.SQLConnectError, err_args)
    SQLConnectError: (3135, 'ORA-03135: connection lost contact\n', '<CENSORED!>', 'Connection_Connect(): begin session')
    
    Local variables by frame
    Frame connect in /usr/share/rhn/server/rhnSQL/driver_cx_Oracle.py at line 385
                               e = <type 'instance'> ORA-03135: connection lost contact
    
                           errno = <type 'int'> 3135
                            self = <type 'instance'> <server.rhnSQL.driver_cx_Oracle.Database instance at 0x2aab3ad558c0>
                             ret = <type 'tuple'> (3135, 'ORA-03135: connection lost contact\n', 'Connection_Connect(): begin session')
                       reconnect = <type 'int'> 1
                        err_args = <type 'list'> ['<CENSORED!>', 3135, 'ORA-03135: connection lost contact\n', 'Connection_Connect(): begin session']
                          errmsg = <type 'str'> ORA-03135: connection lost contact
    
    
    Frame __init__DB in /usr/share/rhn/server/rhnSQL/__init__.py at line 52
                        username = <type 'str'> <CENSORED!>
                        db_class = <type 'classobj'> server.rhnSQL.driver_cx_Oracle.Database
                        database = <type 'str'> <CENSORED!>
                            host = <type 'str'> localhost
                        password = <type 'str'> <CENSORED!>
                            port = <type 'NoneType'> None
                         backend = <type 'str'> oracle
    
    Frame initDB in /usr/share/rhn/server/rhnSQL/__init__.py at line 127
                        username = <type 'str'> <CENSORED!>
                        database = <type 'str'> <CENSORED!>
                             dsn = <type 'str'> <CENSORED!>
                            host = <type 'str'> localhost
                        password = <type 'str'> <CENSORED!>
                            port = <type 'NoneType'> None
                         backend = <type 'str'> oracle
    
    Frame headerParserHandler in /usr/share/rhn/server/apacheHandler.py at line 86
                            self = <type 'instance'> <server.apacheHandler.apacheHandler instance at 0x2aab3ab67200>
                             req = <type 'mp_request'> <mp_request object at 0x2aab345cd050>
                         options = <type 'mp_table'> {'RHNComponentType': 'server.xmlrpc', 'SERVER': 'xmlrpc', 'RootDir': '/usr/share/rhn'}
                             ret = <type 'int'> 0
    
    Frame HandlerDispatch in /usr/lib64/python2.4/site-packages/mod_python/apache.py at line 299
                         newpath = <type 'list'> ['/usr/lib64/python24.zip', '/usr/lib64/python2.4', '/usr/lib64/python2.4/plat-linux2', '/usr/lib64/python2.4/lib-tk', '/usr/lib64/python2.4/lib-dynload', '/usr/lib64/python2.4/site-packages', '/usr/lib64/python2.4/site-packages/Numeric', '/usr/lib64/python2.4/site-packages/gtk-2.0', '/usr/lib/python2.4/site-packages', '/usr/share/rhn']
                          object = <type 'instancemethod'> <bound method apacheHandler.headerParserHandler of <server.apacheHandler.apacheHandler instance at 0x2aab3ab67200>>
                      pathstring = <type 'str'> sys.path+['/usr/share/rhn']
                            self = <type 'instance'> <mod_python.apache.CallBack instance at 0x2aab345c5b90>
                             req = <type 'mp_request'> <mp_request object at 0x2aab345cd050>
                               l = <type 'list'> ['server.apacheServer', 'HeaderParserHandler']
                          module = <type 'module'> <module 'server.apacheServer' from '/usr/share/rhn/server/apacheServer.pyc'>
                           hlist = <type 'mp_hlist'> {'handler:'server.apacheServer::HeaderParserHandler','directory':'/XMLRPC/','silent':0}
                      object_str = <type 'str'> HeaderParserHandler
                           debug = <type 'int'> 0
                     module_name = <type 'str'> server.apacheServer
                          config = <type 'mp_table'> {'PythonInterpreter': 'rhn.server', 'PythonPath': 'sys.path+['/usr/share/rhn']'}
                          result = <type 'int'> 500
    
    
    Environment for PID=12564 on exception:
    LANG = C
    NLS_LANG = english.UTF8
    PATH = /sbin:/usr/sbin:/bin:/usr/bin
    PERL_BADFREE = 0
    PWD = /
    SHLVL = 2
    TERM = xterm-color
    _ = /usr/sbin/httpd
    

Subscriber exclusive content

A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.

Current Customers and Partners

Log in for full access

Log In

New to Red Hat?

Learn more about Red Hat subscriptions

Using a Red Hat product through a public cloud?

How to access this content