PQ65082: AFTER PQ55948 ADMIN SERVER CRASHING WHEN TRYING ALLOCATE LARGE MEMORY

A fix is available
WebSphere Application Server Version 3.5 Fix Pack 7 (3.5.7)

APAR

APAR status
Closed as program error.

Error description
NOTE: PQ65082 is fixed in fix pack 7 for V3.5.
Apar PQ55498 introduced new cleanup thread to clean up thread
keys that are not needed in the hashtable. When the cleanup
thread is created on the constructor we are setting the thread
name to "CurrentCreator cleanup thread + the hashtable". The
hashtable is nothing but self cleaning hashtable which seems to
be quite large that makes the thread name to be a very large
string value(12MB or larger). So any time here after the thread
is referenced to get the string value of the thread it
needs to allocate that amount of contigious size of memory. This
is happening in 2 places. One in the run() method of cleanup
thread and the other in the getContext() method of the
ClientRequestInterceptor which is clear from the trace below:
.
java.lang.Throwable: Dummy for Ajay
 at
java.lang.StringBuffer.expandCapacity(StringBuffer.java(Compiled
Code))
 at java.lang.StringBuffer.append(StringBuffer.java(Compiled
Code))
 at java.util.Hashtable.toString(Hashtable.java(Compiled Code))
 at java.lang.String.valueOf(String.java(Compiled Code))
 at java.lang.StringBuffer.append(StringBuffer.java(Compiled
Code))
 at
com.ibm.ISecurityLocalObjectBaseL13Impl.CurrentCreator$CleanupTh
read.<in
it>(CurrentCreator.java(Compiled Code))
 at
com.ibm.ISecurityLocalObjectBaseL13Impl.CurrentCreator$SelfClean
ingHasht
able.put(CurrentCreator.java(Compiled Code))
 at
com.ibm.ISecurityLocalObjectBaseL13Impl.CurrentImpl.createContex
t(Curren
tImpl.java(Compiled Code))
 at
com.ibm.ISecurityLocalObjectBaseL13Impl.CurrentImpl.initialize_r
equestor
_context(CurrentImpl.java(Compiled Code))
 at
com.ibm.ISecurityLocalObjectBaseL13Impl.SecureAssociationInterce
ptorImpl
.server_demarshalled_request(SecureAssociationInterceptorImpl.ja
va(Compi
led Code))
 at
com.ibm.CORBA.iiop.RIs.iterateServerRequestPostRIs(RIs.java(Comp
iled
Code))
 at
com.ibm.CORBA.iiop.ExtendedServerDelegate.dispatch(ExtendedServe
rDelegat
e.java(Compiled Code))
 at com.ibm.CORBA.iiop.ORB.process(ORB.java(Compiled Code))
 at
com.ibm.CORBA.iiop.WorkerThread.run(WorkerThread.java(Compiled
Code))
 at
com.ibm.ejs.oa.pool.ThreadPool$PooledThread.run(ThreadPool.java:ClientRequestInterceptor which is clear from the trace below:.java.lang.Throwable: Dummy for Ajayatjava.lang.StringBuffer.expandCapacity(StringBuffer.java(CompiledCode))at java.lang.StringBuffer.append(StringBuffer.java(CompiledCode))at java.util.Hashtable.toString(Hashtable.java(Compiled Code))at java.lang.String.valueOf(String.java(Compiled Code))at java.lang.StringBuffer.append(StringBuffer.java(CompiledCode))atcom.ibm.ISecurityLocalObjectBaseL13Impl.CurrentCreator$CleanupThread.(CurrentCreator.java(Compiled Code))atcom.ibm.ISecurityLocalObjectBaseL13Impl.CurrentCreator$SelfCleaningHashtable.put(CurrentCreator.java(Compiled Code))atcom.ibm.ISecurityLocalObjectBaseL13Impl.CurrentImpl.createContext(CurrentImpl.java(Compiled Code))atcom.ibm.ISecurityLocalObjectBaseL13Impl.CurrentImpl.initialize_requestor_context(CurrentImpl.java(Compiled Code))atcom.ibm.ISecurityLocalObjectBaseL13Impl.SecureAssociationInterceptorImpl.server_demarshalled_request(SecureAssociationInterceptorImpl.java(Compiled Code))atcom.ibm.CORBA.iiop.RIs.iterateServerRequestPostRIs(RIs.java(CompiledCode))atcom.ibm.CORBA.iiop.ExtendedServerDelegate.dispatch(ExtendedServerDelegate.java(Compiled Code))at com.ibm.CORBA.iiop.ORB.process(ORB.java(Compiled Code))atcom.ibm.CORBA.iiop.WorkerThread.run(WorkerThread.java(CompiledCode))at
535) . java.lang.Throwable: Dummy for Ajay at java.lang.StringBuffer.expandCapacity(StringBuffer.java(Compiled Code)) at java.lang.StringBuffer.append(StringBuffer.java(Compiled Code)) at java.lang.Thread.toString(Thread.java(Compiled Code)) at com.ibm.ejs.wlm.client.config.ClientRequestInterceptor.getContex t(Client RequestInterceptor.java(Compiled Code)) at com.ibm.ejs.wlm.client.config.ClientRequestInterceptor.access$1( ClientRe questInterceptor.java(Compiled Code)) at com.ibm.ejs.wlm.client.config.ClientRequestInterceptor$RI.client _unmarsh alled_request(ClientRequestInterceptor.java(Compiled Code)) at com.ibm.CORBA.iiop.RIs.iterateClientRequestPreRIs(RIs.java(Compi led Code)) at com.ibm.CORBA.iiop.ClientRequestImpl.<init>(ClientRequestImpl.ja va(Compi led Code)) at com.ibm.CORBA.iiop.CommFactoryImpl.createClientRequest(CommFacto ryImpl.j ava(Compiled Code)) at com.ibm.CORBA.iiop.GIOPImpl.createRequest(GIOPImpl.java(Compiled Code)) at com.ibm.CORBA.iiop.GIOPImpl.createRequest(GIOPImpl.java(Compiled Code)) at com.ibm.CORBA.iiop.ClientDelegate.createRequest(ClientDelegate.j ava(Comp iled Code)) at com.ibm.CORBA.iiop.ClientDelegate.request(ClientDelegate.java(Co mpiled Code))
com.ibm.ejs.oa.pool.ThreadPool$PooledThread.run(ThreadPool.java:535).java.lang.Throwable: Dummy for Ajayatjava.lang.StringBuffer.expandCapacity(StringBuffer.java(CompiledCode))at java.lang.StringBuffer.append(StringBuffer.java(CompiledCode))at java.lang.Thread.toString(Thread.java(Compiled Code))atcom.ibm.ejs.wlm.client.config.ClientRequestInterceptor.getContext(ClientRequestInterceptor.java(Compiled Code))atcom.ibm.ejs.wlm.client.config.ClientRequestInterceptor.access$1(ClientRequestInterceptor.java(Compiled Code))atcom.ibm.ejs.wlm.client.config.ClientRequestInterceptor$RI.client_unmarshalled_request(ClientRequestInterceptor.java(Compiled Code))atcom.ibm.CORBA.iiop.RIs.iterateClientRequestPreRIs(RIs.java(CompiledCode))atcom.ibm.CORBA.iiop.ClientRequestImpl.(ClientRequestImpl.java(Compiled Code))atcom.ibm.CORBA.iiop.CommFactoryImpl.createClientRequest(CommFactoryImpl.java(Compiled Code))atcom.ibm.CORBA.iiop.GIOPImpl.createRequest(GIOPImpl.java(CompiledCode))atcom.ibm.CORBA.iiop.GIOPImpl.createRequest(GIOPImpl.java(CompiledCode))atcom.ibm.CORBA.iiop.ClientDelegate.createRequest(ClientDelegate.java(Compiled Code))atcom.ibm.CORBA.iiop.ClientDelegate.request(ClientDelegate.java(CompiledCode))
Local fix
Problem summary
****************************************************************
* USERS AFFECTED: All WebSphere Application Server users       *
*                 who have implemented servlets which          *
*                 instantiate new threads.                     *
****************************************************************
* PROBLEM DESCRIPTION: Servlets which instantiate new threads  *
*                      can cause OutOfMemoryExceptions in      *
*                      an application server.                  *
****************************************************************
* RECOMMENDATION:                                              *
****************************************************************
Servlets which instantiate new threads can cause
OutOfMemoryExceptions in an application server.  The original
problem was PQ55948.  Debug code added when correcting PQ55948
allocates a significant amount of memory which can cause
OutOfMemory conditions.
Problem conclusion
Large memory allocations were removed from the debug code.
Temporary fix
Test fix provided.
Comments
APAR information
APAR numberPQ65082
Reported component nameWAS ADVANCED AI
Reported component ID5648C8400
Reported release350
StatusCLOSED PER
PENoPE
HIPERNoHIPER
Submitted date2002-08-07
Closed date2002-09-12
Last modified date2003-05-01

APAR is sysrouted FROM one or more of the following:

APAR is sysrouted TO one or more of the following:APAR is sysrouted FROM one or more of the following:


Modules/Macros
SECURITY
APAR is sysrouted TO one or more of the following:Modules/Macros

Fix information
Fixed component nameWAS ADVANCED AI
Fixed component ID5648C8400

Applicable component levels
R350 PSYUP











Document Information

Product categories: Software, Application Servers, Distributed Application & Web Servers, WebSphere Application Server, General
Software version: 350
Reference #: PQ65082
IBM Group: Software Group
Modified date: 2003-05-01