Monday, June 12, 2017

addNode.sh raises java.lang.OutOfMemoryError Java heap space



We have a 2 node RAC cluster and adding one more node to it. while running addNode.sh script I'm receiving below error,

##########################
##  Error
##########################

Exception java.lang.OutOfMemoryError: Java heap space occurred..
Exception in thread "Thread-65" java.lang.OutOfMemoryError: Java heap space
        at java.util.ArrayList.(ArrayList.java:113)
        at java.util.ArrayList.(ArrayList.java:120)

##########################
#  Error Occurred
##########################

Error occured while running addNode.sh script to add a new node to a RAC Cluster in 11.2.0.4.0 version

##########################
##  Command Executed
##########################

$GRID_HOME/oui/bin/addNode.sh -silent "CLUSTER_NEW_NODES={oralinux3}" "CLUSTER_NEW_VIRTUAL_HOSTNAMES={oralinux3vip}"

**************************************** Step By Step Analysis ******************************************************

#########################################
# 1)  Node Addition Log
#########################################

$GRID_HOME/oui/bin/addNode.sh -silent "CLUSTER_NEW_NODES={oralinux3}" "CLUSTER_NEW_VIRTUAL_HOSTNAMES={oralinux3vip}"
Starting Oracle Universal Installer...
Checking swap space: must be greater than 500 MB.   Actual 2246 MB    Passed
Oracle Universal Installer, Version 11.2.0.4.0 Production
Copyright (C) 1999, 2013, Oracle. All rights reserved.

Performing tests to see whether nodes ngmlx549,oralinux3 are available
............................................................... 100% Done.
.
-----------------------------------------------------------------------------
Cluster Node Addition Summary
Global Settings
   Source: $GRID_HOME
   New Nodes
Space Requirements
   New Nodes
      oralinux3
         $GRID_HOME: Required 32.49GB : Available 57.31GB
Installed Products
   Product Names
      Oracle Grid Infrastructure 11g 11.2.0.4.0
      Java Development Kit 1.5.0.51.10
      Installer SDK Component 11.2.0.4.0
      Oracle One-Off Patch Installer 11.2.0.3.4
      Oracle Universal Installer 11.2.0.4.0
      Oracle RAC Required Support Files-HAS 11.2.0.4.0
      Oracle USM Deconfiguration 11.2.0.4.0
      Oracle Configuration Manager Deconfiguration 10.3.1.0.0
      Enterprise Manager Common Core Files 10.2.0.4.5
      Oracle DBCA Deconfiguration 11.2.0.4.0
      Oracle RAC Deconfiguration 11.2.0.4.0
      Oracle Quality of Service Management (Server) 11.2.0.4.0
      Installation Plugin Files 11.2.0.4.0
      Universal Storage Manager Files 11.2.0.4.0
      Oracle Text Required Support Files 11.2.0.4.0
      Automatic Storage Management Assistant 11.2.0.4.0
      Oracle Database 11g Multimedia Files 11.2.0.4.0
      Oracle Multimedia Java Advanced Imaging 11.2.0.4.0
      Oracle Globalization Support 11.2.0.4.0
      Oracle Multimedia Locator RDBMS Files 11.2.0.4.0
      Oracle Core Required Support Files 11.2.0.4.0
      Bali Share 1.1.18.0.0
      Oracle Database Deconfiguration 11.2.0.4.0
      Oracle Quality of Service Management (Client) 11.2.0.4.0
      Expat libraries 2.0.1.0.1
      Oracle Containers for Java 11.2.0.4.0
      Perl Modules 5.10.0.0.1
      Secure Socket Layer 11.2.0.4.0
      Oracle JDBC/OCI Instant Client 11.2.0.4.0
      Oracle Multimedia Client Option 11.2.0.4.0
      LDAP Required Support Files 11.2.0.4.0
      Character Set Migration Utility 11.2.0.4.0
      Perl Interpreter 5.10.0.0.2
      PL/SQL Embedded Gateway 11.2.0.4.0
      OLAP SQL Scripts 11.2.0.4.0
      Database SQL Scripts 11.2.0.4.0
      Oracle Extended Windowing Toolkit 3.4.47.0.0
      SSL Required Support Files for InstantClient 11.2.0.4.0
      SQL*Plus Files for Instant Client 11.2.0.4.0
      Oracle Net Required Support Files 11.2.0.4.0
      Oracle Database User Interface 2.2.13.0.0
      RDBMS Required Support Files for Instant Client 11.2.0.4.0
      RDBMS Required Support Files Runtime 11.2.0.4.0
      XML Parser for Java 11.2.0.4.0
      Oracle Security Developer Tools 11.2.0.4.0
      Oracle Wallet Manager 11.2.0.4.0
      Enterprise Manager plugin Common Files 11.2.0.4.0
      Platform Required Support Files 11.2.0.4.0
      Oracle JFC Extended Windowing Toolkit 4.2.36.0.0
      RDBMS Required Support Files 11.2.0.4.0
      Oracle Ice Browser 5.2.3.6.0
      Oracle Help For Java 4.2.9.0.0
      Enterprise Manager Common Files 10.2.0.4.5
      Deinstallation Tool 11.2.0.4.0
      Oracle Java Client 11.2.0.4.0
      Cluster Verification Utility Files 11.2.0.4.0
      Oracle Notification Service (eONS) 11.2.0.4.0
      Oracle LDAP administration 11.2.0.4.0
      Cluster Verification Utility Common Files 11.2.0.4.0
      Oracle Clusterware RDBMS Files 11.2.0.4.0
      Oracle Locale Builder 11.2.0.4.0
      Oracle Globalization Support 11.2.0.4.0
      Buildtools Common Files 11.2.0.4.0
      HAS Common Files 11.2.0.4.0
      SQL*Plus Required Support Files 11.2.0.4.0
      XDK Required Support Files 11.2.0.4.0
      Agent Required Support Files 10.2.0.4.5
      Parser Generator Required Support Files 11.2.0.4.0
      Precompiler Required Support Files 11.2.0.4.0
      Installation Common Files 11.2.0.4.0
      Required Support Files 11.2.0.4.0
      Oracle JDBC/THIN Interfaces 11.2.0.4.0
      Oracle Multimedia Locator 11.2.0.4.0
      Oracle Multimedia 11.2.0.4.0
      Assistant Common Files 11.2.0.4.0
      Oracle Net 11.2.0.4.0
      PL/SQL 11.2.0.4.0
      HAS Files for DB 11.2.0.4.0
      Oracle Recovery Manager 11.2.0.4.0
      Oracle Database Utilities 11.2.0.4.0
      Oracle Notification Service 11.2.0.3.0
      SQL*Plus 11.2.0.4.0
      Oracle Netca Client 11.2.0.4.0
      Oracle Advanced Security 11.2.0.4.0
      Oracle JVM 11.2.0.4.0
      Oracle Internet Directory Client 11.2.0.4.0
      Oracle Net Listener 11.2.0.4.0
      Cluster Ready Services Files 11.2.0.4.0
      Oracle Database 11g 11.2.0.4.0
-----------------------------------------------------------------------------

Instantiating scripts for add node (Monday, 12 June 2017 09:47:20 o'clock BST)
.                                                                 1% Done.
Instantiation of add node scripts complete
Copying to remote nodes (Monday, 12 June 2017 09:47:25 o'clock BST)
..........................SEVERE:Abnormal program termination. An internal error has occured. Please provide the following files to Oracle Support :
"/u01/oracle/oraInventory/logs/addNodeActions2017-06-12_09-45-47AM.log"
"/u01/oracle/oraInventory/logs/oraInstall2017-06-12_09-45-47AM.err"
"/u01/oracle/oraInventory/logs/oraInstall2017-06-12_09-45-47AM.out"
SQL>

=====================================================================================================================

#########################################
# 2)  Install Error Logs
#########################################

[oracle@oralinux1 oui]$ cat "/u01/oracle/oraInventory/logs/oraInstall2017-06-12_09-45-47AM.err"
Exception java.lang.OutOfMemoryError: Java heap space occurred..
Exception in thread "Thread-65" java.lang.OutOfMemoryError: Java heap space        at java.util.ArrayList.(ArrayList.java:113)
        at java.util.ArrayList.(ArrayList.java:120)
        at oracle.cluster.deployment.ractrans.FileDescriptor.(FileDescriptor.java:143)
        at oracle.cluster.deployment.ractrans.FileDescriptor.(FileDescriptor.java:111)
        at oracle.cluster.deployment.ractrans.DirectoryMap.processDir(DirectoryMap.java:238)
        at oracle.cluster.deployment.ractrans.DirectoryMap.processDir(DirectoryMap.java:287)
        at oracle.cluster.deployment.ractrans.DirectoryMap.processDir(DirectoryMap.java:287)
        at oracle.cluster.deployment.ractrans.DirectoryMap.(DirectoryMap.java:169)
        at oracle.cluster.deployment.ractrans.DirListing.(DirListing.java:301)
        at oracle.cluster.deployment.ractrans.DirListing.(DirListing.java:165)
        at oracle.cluster.deployment.ractrans.RACTransferCore.createDirListing(RACTransferCore.java:211)
        at oracle.cluster.deployment.ractrans.RACTransfer.createDirListing(RACTransfer.java:1908)
        at oracle.cluster.deployment.ractrans.RACTransfer.transferDirStructureToNodes(RACTransfer.java:620)
        at oracle.cluster.deployment.ractrans.RACTransfer.transferDirToNodes(RACTransfer.java:257)
        at oracle.ops.mgmt.cluster.ClusterCmd.transferDirToNodes(ClusterCmd.java:3191)
        at oracle.ops.mgmt.cluster.ClusterCmd.transferDirToNodes(ClusterCmd.java:3109)
        at oracle.sysman.oii.oiip.oiipg.OiipgClusterOps.transferDirToNodes(OiipgClusterOps.java:947)
        at oracle.sysman.oii.oiif.oiifw.OiifwClusterCopyWCCE.doOperation(OiifwClusterCopyWCCE.java:544)
        at oracle.sysman.oii.oiif.oiifb.OiifbCondIterator.iterate(OiifbCondIterator.java:171)
        at oracle.sysman.oii.oiif.oiifw.OiifwAddNodePhaseWCDE.doOperation(OiifwAddNodePhaseWCDE.java:313)
        at oracle.sysman.oii.oiif.oiifb.OiifbCondIterator.iterate(OiifbCondIterator.java:171)
        at oracle.sysman.oii.oiic.OiicPullSession.doOperation(OiicPullSession.java:1380)
        at oracle.sysman.oii.oiic.OiicSessionWrapper.doOperation(OiicSessionWrapper.java:295)
        at oracle.sysman.oii.oiic.OiicInstaller.run(OiicInstaller.java:579)
        at oracle.sysman.oii.oiic.OiicInstaller.runInstaller(OiicInstaller.java:969)
        at oracle.sysman.oii.oiic.OiicInstaller.main(OiicInstaller.java:906)
java.lang.OutOfMemoryError: Java heap space
        at java.nio.CharBuffer.wrap(CharBuffer.java:350)
        at sun.nio.cs.StreamEncoder$CharsetSE.implWrite(StreamEncoder.java:378)
        at sun.nio.cs.StreamEncoder.write(StreamEncoder.java:136)
        at java.io.OutputStreamWriter.write(OutputStreamWriter.java:191)
        at java.io.BufferedWriter.flushBuffer(BufferedWriter.java:111)
        at java.io.PrintStream.write(PrintStream.java:458)
        at java.io.PrintStream.print(PrintStream.java:602)
        at oracle.sysman.oii.oiic.OiicSilentInstallPhaseProgressListener.displayProgress(OiicSilentInstallPhaseProgressListener.java:372)
        at oracle.sysman.oii.oiic.OiicSilentInstallPhaseProgressListener.addBytes(OiicSilentInstallPhaseProgressListener.java:341)
        at oracle.sysman.oii.oiic.OiicSilentInstallPhaseProgressListener.addPercentage(OiicSilentInstallPhaseProgressListener.java:555)
        at oracle.sysman.oii.oiix.OiixProgressUpdator$OiixProgressUpdatingWorker.run(OiixProgressUpdator.java:199)
        at java.lang.Thread.run(Thread.java:637)
[oracle@oralinux1 oui]$

=====================================================================================================================

#########################################
# 3)  Check the Java Memory Parameters
#########################################

Check Java Memory parameters defined in $GRID_HOME/oui/oraparam.ini

cd $GRID_HOME/oui

cat oraparam.ini | grep -i java

[oracle@oralinux1 oui]$ cat oraparam.ini | grep -i memory
JRE_MEMORY_OPTIONS=" -mx1024m"
[oracle@oralinux1 oui]$

=====================================================================================================================

#########################################
# 4)  Reason for Failure
#########################################

During Node addition process, it copies entire GRID_HOME files from existing node to the new node. Java Memory parameters defined in oraparam.ini file is 1024 MB, but looks like this memory is not sufficient.

=====================================================================================================================

##########################
##  Solution
##########################

Increase JAVA Memory to a higher value

[oracle@oralinux1 oui]$ cat oraparam.ini | grep -i memory
JRE_MEMORY_OPTIONS=" -mx2048m"
[oracle@oralinux1 oui]$

=====================================================================================================================
After increasing it to double the memory, addNode.sh script is running good.
=====================================================================================================================

=====================================================================================================================
 Comments Are Always welcome
=====================================================================================================================