Freese restarting WEB App on Tomcat 9.0.0.M22

Answered

Hello,

I working in Intellig IDEA 2017.1.4, OS Windows 10, JVM jdk1.8.0_131.

I developeing WEB App on Tomcat 9.0.0.M22.

After significant changes I must restart Server by Tomcat, BUT process restarting freese on this step.

 

  • 30-Jun-2017 21:51:54.220 INFO [main] org.apache.coyote.AbstractProtocol.pause Pausing ProtocolHandler ["ajp-nio-50680"]
  • 30-Jun-2017 21:51:54.295 INFO [main] org.apache.catalina.core.StandardService.stopInternal Stopping service [Catalina]
  • 30-Jun-2017 21:51:54.308 WARNING [main] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesJdbc The web application [ROOT] registered the JDBC driver [oracle.jdbc.OracleDriver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.
  • 30-Jun-2017 21:51:54.309 WARNING [main] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreads The web application [ROOT] appears to have started a thread named [oracle.jdbc.driver.BlockSource.ThreadedCachingBlockSource.BlockReleaser] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread:
  • java.lang.Object.wait(Native Method)
  • oracle.jdbc.driver.BlockSource$ThreadedCachingBlockSource$BlockReleaser.run(BlockSource.java:327)
  • 30-Jun-2017 21:51:54.318 INFO [main] org.apache.coyote.AbstractProtocol.stop Stopping ProtocolHandler ["http-nio-8000"]
  • 30-Jun-2017 21:51:54.319 INFO [main] org.apache.coyote.AbstractProtocol.stop Stopping ProtocolHandler ["ajp-nio-50680"]
  • 30-Jun-2017 21:51:54.320 INFO [main] org.apache.coyote.AbstractProtocol.destroy Destroying ProtocolHandler ["http-nio-8000"]
  • 30-Jun-2017 21:51:54.321 INFO [main] org.apache.coyote.AbstractProtocol.destroy Destroying ProtocolHandler ["ajp-nio-50680"]

In list processes I find java.exe utilizated more 1 Gb memory, after killed this process Tomcat Server finished restart.

How to solve this problem?

 

0
6 comments

Can you stop Tomcat using shutdown script when it happens?

It could be that the issue is caused by the app itself (like it fails to properly terminate custom created threads, deadlocks or fails in some other way).

0
Avatar
Permanently deleted user

I tryed stop from Apache Tomcat Manage Console - service Tomcat stoped.

I found very simple project without connect to DB, other custom threads and others and process restarting same freeesed.

  • C:\Server\Tomcat\bin\catalina.bat stop
  • Using CATALINA_BASE: "C:\Users\user1\.IntelliJIdea2017.1\system\tomcat\Unnamed_college_2"
  • Using CATALINA_HOME: "C:\Server\Tomcat"
  • Using CATALINA_TMPDIR: "C:\Server\Tomcat\temp"
  • Using JRE_HOME: "C:\Program Files\Java\jdk1.8.0_131"
  • Using CLASSPATH: "C:\Server\Tomcat\bin\bootstrap.jar;C:\Server\Tomcat\bin\tomcat-juli.jar"
  • 30-Jun-2017 22:12:19.552 INFO [main] org.apache.catalina.core.StandardServer.await A valid shutdown command was received via the shutdown port. Stopping the Server instance.
  • 30-Jun-2017 22:12:19.553 INFO [main] org.apache.coyote.AbstractProtocol.pause Pausing ProtocolHandler ["http-nio-8000"]
  • 30-Jun-2017 22:12:19.687 INFO [main] org.apache.coyote.AbstractProtocol.pause Pausing ProtocolHandler ["ajp-nio-54361"]
  • 30-Jun-2017 22:12:19.797 INFO [main] org.apache.catalina.core.StandardService.stopInternal Stopping service [Catalina]
  • 30-Jun-2017 22:12:19.814 INFO [main] org.apache.coyote.AbstractProtocol.stop Stopping ProtocolHandler ["http-nio-8000"]
  • 30-Jun-2017 22:12:19.815 INFO [main] org.apache.coyote.AbstractProtocol.stop Stopping ProtocolHandler ["ajp-nio-54361"]
  • 30-Jun-2017 22:12:19.816 INFO [main] org.apache.coyote.AbstractProtocol.destroy Destroying ProtocolHandler ["http-nio-8000"]
  • 30-Jun-2017 22:12:19.816 INFO [main] org.apache.coyote.AbstractProtocol.destroy Destroying ProtocolHandler ["ajp-nio-54361"]
0

Use jstack to get the thread dumps of Tomcat process when it hangs to see what's the problem.

0
Avatar
Permanently deleted user

thread dumps process java process Tomcat


2017-06-30 22:37:15
Full thread dump Java HotSpot(TM) 64-Bit Server VM (25.131-b11 mixed mode):

"RMI TCP Connection(idle)" #76 daemon prio=5 os_prio=0 tid=0x000000001be57800 nid=0x1828 waiting on condition [0x000000001d8af000]
java.lang.Thread.State: TIMED_WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x00000007205fd500> (a java.util.concurrent.SynchronousQueue$TransferStack)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)
at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:460)
at java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:362)
at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:941)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1066)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1127)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:748)

Locked ownable synchronizers:
- None

"DestroyJavaVM" #74 prio=5 os_prio=0 tid=0x000000001be53000 nid=0x494 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE

Locked ownable synchronizers:
- None

"*** Profiler Agent Special Execution Thread 3" #73 daemon prio=10 os_prio=2 tid=0x000000001be5a000 nid=0x12b0 in Object.wait() [0x000000002712f000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:144)
- locked <0x0000000720cc9f38> (a java.lang.ref.ReferenceQueue$Lock)
at org.netbeans.lib.profiler.server.ProfilerRuntimeObjLiveness$ReferenceManagerThread.run(ProfilerRuntimeObjLiveness.java:54)

Locked ownable synchronizers:
- None

"*** Profiler Agent Special Execution Thread 6" #68 daemon prio=5 os_prio=0 tid=0x000000001be54000 nid=0x1278 in Object.wait() [0x00000000234ff000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:502)
at org.netbeans.lib.profiler.server.ProfilerServer$SeparateCmdExecutionThread.run(ProfilerServer.java:251)
- locked <0x0000000720ab50b0> (a java.lang.Object)

Locked ownable synchronizers:
- None

"*** JFluid Monitor thread ***" #67 daemon prio=10 os_prio=2 tid=0x000000001be54800 nid=0x1928 waiting on condition [0x00000000233ff000]
java.lang.Thread.State: TIMED_WAITING (sleeping)
at java.lang.Thread.sleep(Native Method)
at org.netbeans.lib.profiler.server.Monitors$SurvGenAndThreadsMonitor.run(Monitors.java:148)

Locked ownable synchronizers:
- None

"*** Profiler Agent Communication Thread" #66 daemon prio=10 os_prio=2 tid=0x000000001be50000 nid=0xe5c runnable [0x00000000232fe000]
java.lang.Thread.State: RUNNABLE
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.socketRead(SocketInputStream.java:116)
at java.net.SocketInputStream.read(SocketInputStream.java:178)
at java.net.SocketInputStream.read(SocketInputStream.java:141)
at java.net.SocketInputStream.read(SocketInputStream.java:226)
at java.io.ObjectInputStream$PeekInputStream.peek(ObjectInputStream.java:2598)
at java.io.ObjectInputStream$BlockDataInputStream.readBlockHeader(ObjectInputStream.java:2792)
at java.io.ObjectInputStream$BlockDataInputStream.refill(ObjectInputStream.java:2864)
at java.io.ObjectInputStream$BlockDataInputStream.read(ObjectInputStream.java:2934)
at java.io.ObjectInputStream.read(ObjectInputStream.java:893)
at org.netbeans.lib.profiler.wireprotocol.WireIO.receiveCommandOrResponse(WireIO.java:50)
at org.netbeans.lib.profiler.server.ProfilerServer.listenToClient(ProfilerServer.java:1688)
at org.netbeans.lib.profiler.server.ProfilerServer.run(ProfilerServer.java:655)

Locked ownable synchronizers:
- None

"RMI TCP Connection(5)-127.0.0.1" #63 daemon prio=5 os_prio=0 tid=0x000000001be52800 nid=0x182c runnable [0x000000001f3ae000]
java.lang.Thread.State: RUNNABLE
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.socketRead(SocketInputStream.java:116)
at java.net.SocketInputStream.read(SocketInputStream.java:178)
at java.net.SocketInputStream.read(SocketInputStream.java:141)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:249)
at java.io.BufferedInputStream.read(BufferedInputStream.java:265)
- locked <0x0000000720bfd628> (a java.io.BufferedInputStream)
at java.io.FilterInputStream.read(FilterInputStream.java:83)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(Redefined)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(Redefined)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(Redefined)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler$$Lambda$20/140498625.run(Unknown Source)
at java.security.AccessController.doPrivileged(Redefined)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(Redefined)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Redefined)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Redefined)

Locked ownable synchronizers:
- <0x0000000720abfe18> (a java.util.concurrent.ThreadPoolExecutor$Worker)

"JMX server connection timeout 62" #62 daemon prio=5 os_prio=0 tid=0x000000001be4f800 nid=0x141c in Object.wait() [0x000000001ba1f000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at com.sun.jmx.remote.internal.ServerCommunicatorAdmin$Timeout.run(Redefined)
- locked <0x0000000720aaaf98> (a [I)
at java.lang.Thread.run(Redefined)

Locked ownable synchronizers:
- None

"GC Daemon" #22 daemon prio=2 os_prio=-2 tid=0x000000001bd86000 nid=0x11b4 in Object.wait() [0x000000001bd1f000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00000007207729f0> (a sun.misc.GC$LatencyLock)
at sun.misc.GC$Daemon.run(Redefined)
- locked <0x00000007207729f0> (a sun.misc.GC$LatencyLock)

Locked ownable synchronizers:
- None

"RMI Scheduler(0)" #18 daemon prio=5 os_prio=0 tid=0x000000001b02b000 nid=0x14dc waiting on condition [0x000000001b91e000]
java.lang.Thread.State: TIMED_WAITING (parking)
at sun.misc.Unsafe.park(Redefined)
- parking to wait for <0x00000007205f9ec0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.parkNanos(Redefined)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(Redefined)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(Redefined)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(Redefined)
at java.util.concurrent.ThreadPoolExecutor.getTask(Redefined)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Redefined)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Redefined)

Locked ownable synchronizers:
- None

"RMI TCP Accept-0" #16 daemon prio=5 os_prio=0 tid=0x000000001a21b000 nid=0x1374 runnable [0x000000001ae1f000]
java.lang.Thread.State: RUNNABLE
at java.net.DualStackPlainSocketImpl.accept0(Native Method)
at java.net.DualStackPlainSocketImpl.socketAccept(DualStackPlainSocketImpl.java:135)
at java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:409)
at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:203)
- locked <0x00000007205fa260> (a java.net.SocksSocketImpl)
at java.net.ServerSocket.implAccept(ServerSocket.java:549)
at java.net.ServerSocket.accept(ServerSocket.java:514)
at sun.management.jmxremote.LocalRMIServerSocketFactory$1.accept(LocalRMIServerSocketFactory.java:52)
at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.executeAcceptLoop(Redefined)
at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.run(Redefined)
at java.lang.Thread.run(Redefined)

Locked ownable synchronizers:
- None

"RMI TCP Accept-1099" #15 daemon prio=5 os_prio=0 tid=0x000000001a278800 nid=0x1680 runnable [0x000000001ab1f000]
java.lang.Thread.State: RUNNABLE
at java.net.DualStackPlainSocketImpl.accept0(Redefined)
at java.net.DualStackPlainSocketImpl.socketAccept(Redefined)
at java.net.AbstractPlainSocketImpl.accept(Redefined)
at java.net.PlainSocketImpl.accept(Redefined)
- locked <0x00000007205fa720> (a java.net.SocksSocketImpl)
at java.net.ServerSocket.implAccept(Redefined)
at java.net.ServerSocket.accept(Redefined)
at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.executeAcceptLoop(Redefined)
at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.run(Redefined)
at java.lang.Thread.run(Redefined)

Locked ownable synchronizers:
- None

"RMI TCP Accept-0" #14 daemon prio=5 os_prio=0 tid=0x000000001a232000 nid=0xe1c runnable [0x000000001aa1e000]
java.lang.Thread.State: RUNNABLE
at java.net.DualStackPlainSocketImpl.accept0(Redefined)
at java.net.DualStackPlainSocketImpl.socketAccept(Redefined)
at java.net.AbstractPlainSocketImpl.accept(Redefined)
at java.net.PlainSocketImpl.accept(Redefined)
- locked <0x00000007205f0f78> (a java.net.SocksSocketImpl)
at java.net.ServerSocket.implAccept(Redefined)
at java.net.ServerSocket.accept(Redefined)
at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.executeAcceptLoop(Redefined)
at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.run(Redefined)
at java.lang.Thread.run(Redefined)

Locked ownable synchronizers:
- None

"pool-1-thread-1" #13 prio=5 os_prio=0 tid=0x000000001a0ee000 nid=0x1270 waiting on condition [0x000000001a63e000]
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Redefined)
- parking to wait for <0x000000072060a728> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.park(Redefined)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Redefined)
at java.util.concurrent.LinkedBlockingQueue.take(Redefined)
at java.util.concurrent.ThreadPoolExecutor.getTask(Redefined)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Redefined)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Redefined)

Locked ownable synchronizers:
- None

"AsyncFileHandlerWriter-1846274136" #12 daemon prio=5 os_prio=0 tid=0x0000000019fde800 nid=0x14e4 waiting on condition [0x000000001a53f000]
java.lang.Thread.State: TIMED_WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x000000072060d468> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2079)
at java.util.concurrent.LinkedBlockingDeque.pollFirst(LinkedBlockingDeque.java:522)
at java.util.concurrent.LinkedBlockingDeque.poll(LinkedBlockingDeque.java:684)
at org.apache.juli.AsyncFileHandler$LoggerThread.run(Redefined)

Locked ownable synchronizers:
- None

"Service Thread" #9 daemon prio=9 os_prio=0 tid=0x0000000019f67800 nid=0xbe0 runnable [0x0000000000000000]
java.lang.Thread.State: RUNNABLE

Locked ownable synchronizers:
- None

"C1 CompilerThread2" #8 daemon prio=9 os_prio=2 tid=0x00000000186e5000 nid=0xd9c waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE

Locked ownable synchronizers:
- None

"C2 CompilerThread1" #7 daemon prio=9 os_prio=2 tid=0x00000000186e0800 nid=0xb2c waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE

Locked ownable synchronizers:
- None

"C2 CompilerThread0" #6 daemon prio=9 os_prio=2 tid=0x00000000186dd800 nid=0xc24 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE

Locked ownable synchronizers:
- None

"Attach Listener" #5 daemon prio=5 os_prio=2 tid=0x00000000186dd000 nid=0x1170 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE

Locked ownable synchronizers:
- None

"Signal Dispatcher" #4 daemon prio=9 os_prio=2 tid=0x000000000264d800 nid=0xb1c runnable [0x0000000000000000]
java.lang.Thread.State: RUNNABLE

Locked ownable synchronizers:
- None

"Finalizer" #3 daemon prio=8 os_prio=1 tid=0x00000000186ca800 nid=0x1678 in Object.wait() [0x0000000019a3f000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:144)
- locked <0x00000007204dfbd0> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:164)
at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:209)

Locked ownable synchronizers:
- None

"Reference Handler" #2 daemon prio=10 os_prio=2 tid=0x0000000002640800 nid=0x1490 in Object.wait() [0x000000001993f000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:502)
at java.lang.ref.Reference.tryHandlePending(Reference.java:191)
- locked <0x0000000720815ad0> (a java.lang.ref.Reference$Lock)
at java.lang.ref.Reference$ReferenceHandler.run(Redefined)

Locked ownable synchronizers:
- None

"VM Thread" os_prio=2 tid=0x00000000186a8800 nid=0xfd4 runnable

"GC task thread#0 (ParallelGC)" os_prio=0 tid=0x0000000002566800 nid=0x8dc runnable

"GC task thread#1 (ParallelGC)" os_prio=0 tid=0x0000000002568800 nid=0xe04 runnable

"GC task thread#2 (ParallelGC)" os_prio=0 tid=0x000000000256a000 nid=0x444 runnable

"GC task thread#3 (ParallelGC)" os_prio=0 tid=0x000000000256d000 nid=0x6a0 runnable

"VM Periodic Task Thread" os_prio=2 tid=0x000000001a21d000 nid=0x728 waiting on condition

JNI global references: 1550

 

0

Doesn't tell us anything useful.

If you think the issue is specific to IntelliJ IDEA, please file a bug at https://youtrack.jetbrains.com/issues/IDEA with the sample project and the exact steps to reproduce it.

0
Avatar
Permanently deleted user

Change Tomcat 9.0.0.M22 to TomEE 8.5.11, this prombem not play. Restarting executed without freese and error.

0

Please sign in to leave a comment.