Profile Image
Sameer Choudhury
  • threadstuck

  • threaddumpanalysis

Please Sign In or to post your comment or answer

Profile Image

Ankita

Hi Sameer,

 

1. If you see the Transitive Graph on the report page, you will see 10 threads are getting blocked by thread '[STUCK] ExecuteThread: '2' for queue: 'weblogic.kernel.Default (self-tuning)'' for queue, and this thread is stuck in  socketRead0() method of java.net.SocketInputStream file. If you see the stack trace of thread: '[STUCK] ExecuteThread: '2' for queue: 'weblogic.kernel.Default (self-tuning)'', before getting stuck this thread has obtained 1 lock, and due to that 10 threads are blocked.

 

 

2. You can see 3 threads are getting blocked by thread 'ExecuteThread: '2' for queue: 'weblogic.socket.Muxer'', and this thread is stuck in  poll() method in weblogic.socket.PosixSocketMuxer file. If you see the stack trace of thread: 'ExecuteThread: '2' for queue: 'weblogic.socket.Muxer', before getting stuck this thread has obtained 1 lock, and due to that 3 threads are blocked.

 

 

Profile Image

Mahesh

Hello Sameer,

 

In your fastThread report page, I could see that the following 2 threads are stuck.

 

1) ExecuteThread: '2' for queue: 'weblogic.kernel.Default (self-tuning)' -

 

This thread is stuck in java.net.SocketInputStream.socketRead0() method and it has blocked the other 10 threads. From the thread stack trace, I learned that your application is trying to connect to your database using JDBC API. Java uses the java.net package to establish the connection and it uses SocketInputStream.socketRead0() method to read the data from a remote application.

 

This thread is stuck inside SocketInputStream.socketRead0() method because the external application or service is taking time to respond or it is not responding at all. This thread will be stuck in this method until it reads the response completely. 

 

Here are few lines of thread stack trace

[STUCK] ExecuteThread: '2' for queue: 'weblogic.kernel.Default (self-tuning)'
Stack Trace is:
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.socketRead(SocketInputStream.java:116)
at java.net.SocketInputStream.read(SocketInputStream.java:171)
at java.net.SocketInputStream.read(SocketInputStream.java:141)
at oracle.net.nt.MetricsEnabledInputStream.read(TcpNTAdapter.java:759)
at oracle.net.ns.Packet.receive(Packet.java:312)
at oracle.net.ns.DataPacket.receive(DataPacket.java:106)
at oracle.net.ns.NetInputStream.getNextPacket(NetInputStream.java:306)
at oracle.net.ns.NetInputStream.read(NetInputStream.java:250)
at oracle.net.ns.NetInputStream.read(NetInputStream.java:172)
at oracle.net.ns.NetInputStream.read(NetInputStream.java:90)
at oracle.jdbc.driver.T4CSocketInputStreamWrapper.readNextPacket(T4CSocketInputStreamWrapper.java:124)
at oracle.jdbc.driver.T4CSocketInputStreamWrapper.read(T4CSocketInputStreamWrapper.java:80)
:
:
:

 

2) ExecuteThread: '2' for queue: 'weblogic.socket.Muxer'

 

This thread is stuck inside PosixSocketMuxer.poll() method and it has blocked the other 3 threads. Muxer thread is software modules that WebLogic uses to read/write the data from the socket on which the external system communicating. You can find more information here https://docs.oracle.com/cd/E13222_01/wls/docs100/perform/WLSTuning.html#wp1152246

 

Here is a thread stack trace

ExecuteThread: '2' for queue: 'weblogic.socket.Muxer'
Stack Trace is:
at weblogic.socket.PosixSocketMuxer.poll(Native Method)
at weblogic.socket.PosixSocketMuxer.processSockets(PosixSocketMuxer.java:143)
- locked weblogic.socket.PosixSocketMuxer$1@4f67d912
at weblogic.socket.SocketReaderRequest.run(SocketReaderRequest.java:30)
at weblogic.socket.SocketReaderRequest.execute(SocketReaderRequest.java:43)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:147)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:119)

Got something else on mind? Post Your Question

Not the answer you're looking for? Browse other questions tagged
  • threadstuck

  • threaddumpanalysis