Stuck Thread or "java.io.IOException: Broken pipe"/Pipe Exception Reported in WebLogic (Doc ID 1996156.1)

Last updated on SEPTEMBER 15, 2016

Applies to:

Oracle Network Management for Utilities - DMS - Version 1.12.0 and later
Oracle Utilities Network Management System - Version 1.12.0 and later
Oracle WebLogic Server - Version 10.3.6 and later
Oracle REST Data Services - Version 3.0 to 3.0 [Release 3]
Information in this document applies to any platform.

Goal

A Stuck thread or "Broken pipe" error appears quite frequently in the cesejb managed server log.  What can cause this error? 

 

Broke pipe/pipe exception Example:
Starts with one of these messages:

####<Apr 5, 2016 11:29:01 AM HST> <Error> <HTTP> <upanms80> <server_prdadm> <[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1459891741247> <BEA-101019> <[ServletContext@-437923716[app:cesejb-prdadm-05APR2016 module:nms path:/nms spec-version:2.5 version:1.12.0.2.11]] Servlet failed with IOException
java.io.IOException: There is no process to read data written to a pipe.


-OR-

####<Apr 1, 2015 9:19:23 PM PDT> <Error> <HTTP> <app3> <NMSMS1> <ACTIVE ExecuteThread: '1' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <1427948363625> <BEA-101019> <[ServletContext@1963584207app:CESEJB-PRIMARY module:nms path:/nms spec-version:2.5 version:1.12.0.1.7] Servlet failed with IOException
java.io.IOException: Broken pipe

Continues with:
at sun.nio.ch.FileDispatcherImpl.write0(Native Method)
at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:47)
at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93)
at sun.nio.ch.IOUtil.write(IOUtil.java:65)
at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:487)
at weblogic.socket.NIOSocketMuxer$NIOOutputStream.write(NIOSocketMuxer.java:693)
at weblogic.socket.JSSEFilterImpl.writeToNetwork(JSSEFilterImpl.java:675)
at weblogic.socket.JSSEFilterImpl.wrapAndWrite(JSSEFilterImpl.java:637)
at weblogic.socket.JSSEFilterImpl.write(JSSEFilterImpl.java:398)
at weblogic.socket.JSSESocket$JSSEOutputStream.write(JSSESocket.java:78)
at weblogic.servlet.internal.ChunkOutput.writeChunkNoTransfer(ChunkOutput.java:591)
at weblogic.servlet.internal.ChunkOutput.writeChunks(ChunkOutput.java:540)
at weblogic.servlet.internal.ChunkOutput.flush(ChunkOutput.java:427)
at weblogic.servlet.internal.ChunkOutput$2.checkForFlush(ChunkOutput.java:648)
at weblogic.servlet.internal.ChunkOutput.write(ChunkOutput.java:333)
at weblogic.servlet.internal.ChunkOutputWrapper.write(ChunkOutputWrapper.java:152)
at weblogic.servlet.internal.ServletOutputStreamImpl.write(ServletOutputStreamImpl.java:148)
at com.splwg.oms.web.servlet.JarRedirect.copyStream(JarRedirect.java:143)
at com.splwg.oms.web.servlet.JarRedirect.doGet(JarRedirect.java:82)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:715)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:301)
at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at com.splwg.oms.web.servlet.ClickjackFilter.doFilter(ClickjackFilter.java:34)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3730)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3696)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2273)
at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2179)
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1490)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:256)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)

 

Similarly, the error may appear in this form:

<Error> <HTTP> <BEA-101019> <[ServletContext@1472182655[app:CESEJB-PRIMARY module:nms path:/nms spec-version:2.5 version:1.12.0.3.8.23227814]] Servlet failed with IOException
java.io.IOException: Broken pipe
at sun.nio.ch.FileDispatcherImpl.write0(Native Method)
at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:47)
at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93)
at sun.nio.ch.IOUtil.write(IOUtil.java:65)
at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:487)
Truncated. see log file for complete stacktrace

 

Stuck thread example:

####<Jun 24, 2016 9:36:17 AM EDT> <Error> <WebLogicServer> <app3> <NMSMS1> <[ACTIVE] ExecuteThread: '16' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1466775377257> <BEA-000337> <[STUCK] ExecuteThread: '3' for queue: 'weblogic.kernel.Default (self-tuning)' has been busy for "637" seconds working on the request "Workmanager: default, Version: 0, Scheduled=true, Started=true, Started time: 637208 ms
[
GET /nms//ejb-client.jar HTTP/1.1  -OR-  GET /nms/nms-ide.jar HTTP/1.1
content-type: application/x-java-archive
accept-encoding: pack200-gzip,gzip
User-Agent: JNLP/1.7.0 javaws/10.67.2.01 (<internal>) Java/1.7.0_67
UA-Java-Version: 1.7.0_67
Cache-Control: no-cache
Pragma: no-cache
Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
Connection: keep-alive
If-Modified-Since: Wed, 15 Jun 2016 13:31:40 GMT
Cookie: WT_FPC=id=76-edd:lv=6769:ss=1676; JSESSIONID=oVm-294
]", which is more than the configured time (StuckThreadMaxTime) of "600" seconds. Stack trace:
sun.nio.ch.FileDispatcherImpl.write0(Native Method)
sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:47)
sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93)
sun.nio.ch.IOUtil.write(IOUtil.java:65)
sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:487)
weblogic.socket.NIOSocketMuxer$NIOOutputStream.write(NIOSocketMuxer.java:693)
weblogic.socket.JSSEFilterImpl.writeToNetwork(JSSEFilterImpl.java:681)
weblogic.socket.JSSEFilterImpl.wrapAndWrite(JSSEFilterImpl.java:643)
weblogic.socket.JSSEFilterImpl.write(JSSEFilterImpl.java:404)
weblogic.socket.JSSESocket$JSSEOutputStream.write(JSSESocket.java:89)
weblogic.servlet.internal.ChunkOutput.writeChunkNoTransfer(ChunkOutput.java:591)
weblogic.servlet.internal.ChunkOutput.writeChunks(ChunkOutput.java:540)
weblogic.servlet.internal.ChunkOutput.flush(ChunkOutput.java:427)
weblogic.servlet.internal.ChunkOutput$2.checkForFlush(ChunkOutput.java:648)
weblogic.servlet.internal.ChunkOutput.write(ChunkOutput.java:333)
weblogic.servlet.internal.ChunkOutputWrapper.write(ChunkOutputWrapper.java:152)
weblogic.servlet.internal.ServletOutputStreamImpl.write(ServletOutputStreamImpl.java:148)
com.splwg.oms.web.servlet.NmsEjbClientJar.copyStream(NmsEjbClientJar.java:130)
com.splwg.oms.web.servlet.NmsEjbClientJar.doGet(NmsEjbClientJar.java:152)
javax.servlet.http.HttpServlet.service(HttpServlet.java:715)
javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)

 

Solution

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