You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by Chris Stewart <cs...@gmail.com> on 2009/05/04 15:52:22 UTC
Re: SSL issues with Tomcat - OutOfMemory
Here's an exception from that day:
Apr 27, 2009 8:28:50 AM org.apache.catalina.core.StandardWrapperValve
invoke
SEVERE: Servlet.service() for servlet Faces Servlet threw exception
java.lang.OutOfMemoryError: unable to create new native thread
at java.lang.Thread.start0(Native Method)
at java.lang.Thread.start(Unknown Source)
at
com
.google
.inject
.util.FinalizableReferenceQueue.start(FinalizableReferenceQueue.java:59)
at
com
.google
.inject
.util
.FinalizableReferenceQueue
.createAndStart(FinalizableReferenceQueue.java:66)
at
com
.google
.inject
.util
.FinalizableReferenceQueue.<clinit>(FinalizableReferenceQueue.java:62)
at
com
.google
.inject
.util.FinalizableWeakReference.<init>(FinalizableWeakReference.java:33)
at com.google.inject.util.ReferenceMap
$WeakKeyReference.<init>(ReferenceMap.java:428)
at com.google.inject.util.ReferenceMap.referenceKey(ReferenceMap.java:
242)
at
com
.google
.inject
.util
.AbstractReferenceCache.internalCreate(AbstractReferenceCache.java:45)
at
com
.google
.inject.util.AbstractReferenceCache.get(AbstractReferenceCache.java:116)
at
com
.google
.inject.util.StackTraceElements.forMember(StackTraceElements.java:52)
at
com
.google
.inject.ProvisionException.createMessage(ProvisionException.java:35)
at
com.google.inject.ProvisionException.<init>(ProvisionException.java:29)
at com.google.inject.InjectorImpl
$SingleParameterInjector.inject(InjectorImpl.java:646)
at com.google.inject.InjectorImpl.getParameters(InjectorImpl.java:666)
at com.google.inject.InjectorImpl
$SingleMethodInjector.inject(InjectorImpl.java:575)
at com.google.inject.InjectorImpl.injectMembers(InjectorImpl.java:674)
at com.google.inject.InjectorImpl$8.call(InjectorImpl.java:682)
at com.google.inject.InjectorImpl$8.call(InjectorImpl.java:681)
at com.google.inject.InjectorImpl.callInContext(InjectorImpl.java:747)
at com.google.inject.InjectorImpl.injectMembers(InjectorImpl.java:680)
at
com
.xperts
.dashboard
.utility
.GuiceVariableResolver.resolveVariable(GuiceVariableResolver.java:29)
at
com
.sun
.faces
.el
.VariableResolverChainWrapper
.getValue(VariableResolverChainWrapper.java:107)
at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:53)
at
com
.sun
.faces
.el.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:72)
at org.apache.el.parser.AstIdentifier.getValue(AstIdentifier.java:45)
at org.apache.el.parser.AstValue.getValue(AstValue.java:86)
at
org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
at com.sun.facelets.el.ELText$ELTextVariable.writeText(ELText.java:184)
at
com.sun.facelets.compiler.TextInstruction.write(TextInstruction.java:45)
at
com
.sun.facelets.compiler.UIInstructions.encodeBegin(UIInstructions.java:
39)
at com.sun.facelets.compiler.UILeaf.encodeAll(UILeaf.java:149)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:933)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:933)
at
com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:
577)
at
org
.ajax4jsf
.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:100)
at
org
.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:
176)
at
com
.sun
.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:
110)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:266)
at
org
.apache
.catalina
.core
.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:
290)
at
org
.apache
.catalina
.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:
178)
at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
at
org
.ajax4jsf
.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:390)
at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:517)
at
org
.apache
.catalina
.core
.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:
235)
at
org
.apache
.catalina
.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at
org
.apache
.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:
147)
at
org
.apache
.catalina
.core
.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:
235)
at
org
.apache
.catalina
.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at
org
.apache
.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:
233)
at
org
.apache
.catalina.core.StandardContextValve.invoke(StandardContextValve.java:
175)
at
org
.apache
.catalina
.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:525)
at
org
.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:
128)
at
org
.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:
102)
at
org
.apache
.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:
263)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:
844)
at org.apache.coyote.http11.Http11Protocol
$Http11ConnectionHandler.process(Http11Protocol.java:584)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:
447)
at java.lang.Thread.run(Unknown Source)
It didn't specify PermGen or anything, even though that seems quite
low in our QA testing.
I'd like to look at the memory utilization in production with SSL
enabled, but my business and operations counterparts don't want to
inconvenience users. And unfortunately, we're unable to replicate the
problem in QA with any sort of clue as to why it happens. As this
point, with the exact codebase running in production as HTTP without
issue, it's hard to suggest it's anything but a configuration issue in
Tomcat.
Chris Stewart
cstewart913@gmail.com
On Apr 28, 2009, at 5:38 PM, Mark Thomas wrote:
> Chris Stewart wrote:
>> I put Lambda Probe (http://www.lambdaprobe.org/d/index.htm) on the
>> web
>> server to monitor some of the memory usage. Here's what I'm finding
>> after 20 minutes of running. Keep in mind this is without SSL
>> enabled.
>
> Something I should have asked before - exactly what was out of
> memory when you
> saw the OOME?
>
>> Name Used Committed Maximum Initial Group
>> Tenured Gen 129.73Mb 138.86Mb 945.25Mb 118.19Mb HEAP
>> Perm Gen 45.88Mb 46.00Mb 64.00Mb 12.00Mb NON_HEAP
>> Survivor Space 957.74Kb 1.13Mb 7.88Mb 960.00Kb HEAP
>> Code Cache 12.19Mb 12.22Mb 32.00Mb 192.00Kb NON_HEAP
>> Eden Space 6.75Mb 9.38Mb 63.00Mb 7.94Mb HEAP
>> Total 195.48Mb 207.58Mb 1.09Gb 139.25Mb TOTAL
>>
>> Everything is running fine at the moment but I'm a little concerned
>> about Perm Gen and the space we have allocated for it. I imagine
>> that
>> it's possible, with SSL enabled, that the space is being used up. Is
>> there enough overhead with SSL to have this scenario? I did some
>> reading on Perm Gen and we do use an extensive about of Hibernate in
>> this application, and it's JSF based.
>
> You really need to look at this with SSL enabled.
>
> Mark
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
>
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org
RE: SSL issues with Tomcat - OutOfMemory
Posted by "Caldarale, Charles R" <Ch...@unisys.com>.
> From: Chris Stewart [mailto:cstewart913@gmail.com]
> Subject: Re: SSL issues with Tomcat - OutOfMemory
>
> Apr 27, 2009 8:28:50 AM org.apache.catalina.core.StandardWrapperValve
> invoke
> SEVERE: Servlet.service() for servlet Faces Servlet threw exception
> java.lang.OutOfMemoryError: unable to create new native thread
> at java.lang.Thread.start0(Native Method)
> at java.lang.Thread.start(Unknown Source)
That does not appear to be a heap issue, but rather a limitation imposed by the underlying OS. You may be out of process space or hit the thread limit for the process.
- Chuck
THIS COMMUNICATION MAY CONTAIN CONFIDENTIAL AND/OR OTHERWISE PROPRIETARY MATERIAL and is thus for use only by the intended recipient. If you received this in error, please contact the sender and delete the e-mail and its attachments from all computers.
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org
Re: SSL issues with Tomcat - OutOfMemory
Posted by Christopher Schultz <ch...@christopherschultz.net>.
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Chris,
On 5/4/2009 9:52 AM, Chris Stewart wrote:
> Here's an exception from that day:
>
> Apr 27, 2009 8:28:50 AM org.apache.catalina.core.StandardWrapperValve
> invoke
> SEVERE: Servlet.service() for servlet Faces Servlet threw exception
> java.lang.OutOfMemoryError: unable to create new native thread
Now that's a different story: you're out of threads, not memory. It's
too bad the JVM reports OOME when it really is another type of error.
Can you post your <Connector> configurations? I use the plural because I
suspect you have two <Connector> definitions: one for HTTP and one for
HTTPS.
If the ones posted on the 28th are still valid, then you have a maximum
of 400 threads for your HTTPS connector and 40 (the default) for your
HTTP connector. 440 seems like a low number to be hitting your maximum
on your OS, even if it /is/ Microsoft Windows.
Are you running more threads for anything else such as Quartz or
anything like that? Take a thread dump to see what other threads are
running. Maybe you've got something that's creating way more threads
then you think it should be.
- -chris
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
iEYEARECAAYFAkn/RzkACgkQ9CaO5/Lv0PCdiQCgv3dHbpnv8bOXedsTEQOM85LI
OKkAoMHnj0UWGXGsA7k7ctKWb277E4eC
=DP0E
-----END PGP SIGNATURE-----
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org