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 fixProblem 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 number | PQ65082 | Reported component name | WAS ADVANCED AI | Reported component ID | 5648C8400 | Reported release | 350 | Status | CLOSED PER | PE | NoPE | HIPER | NoHIPER | Submitted date | 2002-08-07 | Closed date | 2002-09-12 | Last modified date | 2003-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 APAR is sysrouted TO one or more of the following:Modules/Macros
|
Fix information |
Fixed component name | WAS ADVANCED AI | Fixed component ID | 5648C8400 |
Applicable component levels | R350 PSY | UP |
|
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
(C) Copyright IBM Corporation 2000, 2004. All Rights Reserved.
|