WebLogic 10.3.2.0 : JAX-WS Memory Leak in Endpointcreationinterceptorfeature Serverlateinittube (Doc ID 1303769.1)

Last updated on FEBRUARY 24, 2017

Applies to:

Oracle Weblogic Server - Version: 10.3.1 to 10.3.5
Information in this document applies to any platform.

Symptoms

Memory leak found in WebLogic 10.3.2’s JAX-WS implementation. The EndpointCreationInterceptorFeature's HashSet<ServerLateInitTube> grows unbounded proportional to the number of requests an endpoint services. For example, after running ~30,000 requests through a service and then performing many manual garbage collections thereafter, there were still ~5,000 ServerLateInitTube instances in memory. The use of JAX-WS handlers exacerbates the problem as each ServerLateInitTube holds onto a response that it has serviced. In some cases, this response has been as large as 5MB.

Example trace of a thread running at 100% CPU.

Stack Trace
[STUCK] ExecuteThread: '4' for queue: 'weblogic.kernel.Default (self-tuning)'
[40] (RUNNABLE)
java.util.HashMap.put line: 456
java.util.HashSet.add line: 200
weblogic.wsee.jaxws.ServerLateInitTube.initializeCopy line: 56
weblogic.wsee.jaxws.ServerLateInitTube.copy line: 45
weblogic.wsee.jaxws.ServerLateInitTube.copy line: 24
com.sun.xml.ws.api.pipe.TubeCloner.copy line: 102
com.sun.xml.ws.api.pipe.TubeCloner.clone line: 74
com.sun.xml.ws.server.WSEndpointImpl$2.<init> line: 237
com.sun.xml.ws.server.WSEndpointImpl.createPipeHead line: 236
com.sun.xml.ws.api.server.Adapter$Toolkit.<init> line: 103
com.sun.xml.ws.transport.http.HttpAdapter$HttpToolkit.<init> line: 433
com.sun.xml.ws.transport.http.HttpAdapter.createToolkit line: 203
com.sun.xml.ws.transport.http.HttpAdapter.createToolkit line: 99
com.sun.xml.ws.api.server.Adapter$1.create line: 112
com.sun.xml.ws.api.server.Adapter$1.create line: 110
com.sun.xml.ws.util.Pool.take line: 78
com.sun.xml.ws.transport.http.HttpAdapter.handle line: 248
com.sun.xml.ws.transport.http.servlet.ServletAdapter.handle line: 140
com.sun.xml.ws.transport.http.servlet.WSServletDelegate.doGet line: 129
com.sun.xml.ws.transport.http.servlet.WSServletDelegate.doPost line: 160
com.sun.xml.ws.transport.http.servlet.WSSpringServlet.doPost line: 103
javax.servlet.http.HttpServlet.service line: 727
javax.servlet.http.HttpServlet.service line: 820
weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run line: 227
weblogic.servlet.internal.StubSecurityHelper.invokeServlet line: 125
weblogic.servlet.internal.ServletStubImpl.execute line: 292
weblogic.servlet.internal.ServletStubImpl.execute line: 175
weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run line: 3590
weblogic.security.acl.internal.AuthenticatedSubject.doAs line: 321
weblogic.security.service.SecurityManager.runAs line: 121
weblogic.servlet.internal.WebAppServletContext.securedExecute line: 2200
weblogic.servlet.internal.WebAppServletContext.execute line: 2106
weblogic.servlet.internal.ServletRequestImpl.run line: 1428
weblogic.work.ExecuteThread.execute line: 201
weblogic.work.ExecuteThread.run line: 173

Cause

Sign In with your My Oracle Support account

Don't have a My Oracle Support account? Click to get started

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms