简体   繁体   English

Spring Boot应用程序开始使用所有CPU

[英]Spring Boot application starts using all CPU

I have a basic Spring Boot (1.3.2.RELEASE) application. 我有一个基本的Spring Boot(1.3.2.RELEASE)应用程序。 I run this application from IntelliJ IDEA as a standalone application ( SpringApplication.run(...) ). 我从IntelliJ IDEA运行此应用程序作为独立的应用程序( SpringApplication.run(...) )。

I have noticed multiple times that after leaving the application running for a while, the java process starts using all available CPU. 我已经多次注意到,在让应用程序运行一段时间之后,java进程开始使用所有可用的CPU。 I have verified that it is in fact the Spring process, and not for example IDEA. 我已经证实它实际上是Spring进程,而不是例如IDEA。 This occurs on my development machine, while I am not doing any kind of interaction with it. 这发生在我的开发机器上,而我没有与它进行任何形式的交互。

Using jstack I took 3 different stacktraces with a minute in between. 使用jstack我用了3分钟不同的堆栈跟踪。 The threads that are different between these stacktraces are listed here: 此处列出了这些堆栈跟踪之间不同的线程:

Diff log1 and log2 Diff log1和log2

#log 1
"NioBlockingSelector.BlockPoller-1" #20 daemon prio=5 os_prio=0 tid=0x000000002168f800 nid=0x17fc runnable [0x0000000019a9f000]
   java.lang.Thread.State: RUNNABLE
    at sun.nio.ch.WindowsSelectorImpl.resetWakeupSocket0(Native Method)
    at sun.nio.ch.WindowsSelectorImpl.resetWakeupSocket(WindowsSelectorImpl.java:473)
    - locked <0x00000000830da710> (a java.lang.Object)
    at sun.nio.ch.WindowsSelectorImpl.doSelect(WindowsSelectorImpl.java:174)
    at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:86)
    - locked <0x00000000830d3130> (a sun.nio.ch.Util$2)
    - locked <0x00000000830d3120> (a java.util.Collections$UnmodifiableSet)
    - locked <0x00000000830d2fd0> (a sun.nio.ch.WindowsSelectorImpl)
    at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:97)
    at org.apache.tomcat.util.net.NioBlockingSelector$BlockPoller.run(NioBlockingSelector.java:342)

#log2
"NioBlockingSelector.BlockPoller-1" #20 daemon prio=5 os_prio=0 tid=0x000000002168f800 nid=0x17fc runnable [0x0000000019a9f000]
   java.lang.Thread.State: RUNNABLE
    at sun.nio.ch.WindowsSelectorImpl$SubSelector.poll0(Native Method)
    at sun.nio.ch.WindowsSelectorImpl$SubSelector.poll(WindowsSelectorImpl.java:296)
    at sun.nio.ch.WindowsSelectorImpl$SubSelector.access$400(WindowsSelectorImpl.java:278)
    at sun.nio.ch.WindowsSelectorImpl.doSelect(WindowsSelectorImpl.java:159)
    at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:86)
    - locked <0x00000000830d3130> (a sun.nio.ch.Util$2)
    - locked <0x00000000830d3120> (a java.util.Collections$UnmodifiableSet)
    - locked <0x00000000830d2fd0> (a sun.nio.ch.WindowsSelectorImpl)
    at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:97)
    at org.apache.tomcat.util.net.NioBlockingSelector$BlockPoller.run(NioBlockingSelector.java:342)

Diff log2 and log3: Diff log2和log3:

#log2
"http-nio-8080-ClientPoller-1" #22 daemon prio=5 os_prio=0 tid=0x000000001ab7d000 nid=0x2a00 runnable [0x000000002509e000]
   java.lang.Thread.State: RUNNABLE
    at sun.nio.ch.WindowsSelectorImpl$SubSelector.poll0(Native Method)
    at sun.nio.ch.WindowsSelectorImpl$SubSelector.poll(WindowsSelectorImpl.java:296)
    at sun.nio.ch.WindowsSelectorImpl$SubSelector.access$400(WindowsSelectorImpl.java:278)
    at sun.nio.ch.WindowsSelectorImpl.doSelect(WindowsSelectorImpl.java:159)
    at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:86)
    - locked <0x00000000830c3628> (a sun.nio.ch.Util$2)
    - locked <0x00000000830c3618> (a java.util.Collections$UnmodifiableSet)
    - locked <0x00000000830c3398> (a sun.nio.ch.WindowsSelectorImpl)
    at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:97)
    at org.apache.tomcat.util.net.NioEndpoint$Poller.run(NioEndpoint.java:1034)
    at java.lang.Thread.run(Thread.java:745)


#log3
"http-nio-8080-ClientPoller-1" #22 daemon prio=5 os_prio=0 tid=0x000000001ab7d000 nid=0x2a00 runnable [0x000000002509e000]
   java.lang.Thread.State: RUNNABLE
    at sun.nio.ch.WindowsSelectorImpl.resetWakeupSocket0(Native Method)
    at sun.nio.ch.WindowsSelectorImpl.resetWakeupSocket(WindowsSelectorImpl.java:473)
    - locked <0x00000000830c3c00> (a java.lang.Object)
    at sun.nio.ch.WindowsSelectorImpl.doSelect(WindowsSelectorImpl.java:174)
    at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:86)
    - locked <0x00000000830c3628> (a sun.nio.ch.Util$2)
    - locked <0x00000000830c3618> (a java.util.Collections$UnmodifiableSet)
    - locked <0x00000000830c3398> (a sun.nio.ch.WindowsSelectorImpl)
    at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:97)
    at org.apache.tomcat.util.net.NioEndpoint$Poller.run(NioEndpoint.java:1034)
    at java.lang.Thread.run(Thread.java:745)

For reference, here is the full stacktrace of log1: 作为参考,这是log1的完整堆栈跟踪:

2016-03-24 15:45:34
Full thread dump Java HotSpot(TM) 64-Bit Server VM (25.45-b02 mixed mode):

"http-nio-8080-exec-10" #38 daemon prio=5 os_prio=0 tid=0x0000000023a3f800 nid=0x2a14 waiting on condition [0x000000001984e000]
   java.lang.Thread.State: WAITING (parking)
    at sun.misc.Unsafe.park(Native Method)
    - parking to wait for  <0x00000000830901c0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
    at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
    at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
    at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:103)
    at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:31)
    at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1067)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1127)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:745)

"http-nio-8080-exec-9" #37 daemon prio=5 os_prio=0 tid=0x0000000021716000 nid=0x2974 waiting on condition [0x00000000277df000]
   java.lang.Thread.State: WAITING (parking)
    at sun.misc.Unsafe.park(Native Method)
    - parking to wait for  <0x00000000830901c0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
    at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
    at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
    at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:103)
    at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:31)
    at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1067)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1127)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:745)

"http-nio-8080-exec-8" #35 daemon prio=5 os_prio=0 tid=0x0000000021715000 nid=0x12e0 waiting on condition [0x00000000276bf000]
   java.lang.Thread.State: WAITING (parking)
    at sun.misc.Unsafe.park(Native Method)
    - parking to wait for  <0x00000000830901c0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
    at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
    at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
    at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:103)
    at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:31)
    at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1067)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1127)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:745)

"http-nio-8080-exec-7" #34 daemon prio=5 os_prio=0 tid=0x0000000021714800 nid=0x904 waiting on condition [0x00000000271be000]
   java.lang.Thread.State: WAITING (parking)
    at sun.misc.Unsafe.park(Native Method)
    - parking to wait for  <0x00000000830901c0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
    at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
    at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
    at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:103)
    at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:31)
    at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1067)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1127)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:745)

"http-nio-8080-exec-6" #32 daemon prio=5 os_prio=0 tid=0x0000000021713800 nid=0x29a4 waiting on condition [0x000000001fdfe000]
   java.lang.Thread.State: WAITING (parking)
    at sun.misc.Unsafe.park(Native Method)
    - parking to wait for  <0x00000000830901c0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
    at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
    at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
    at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:103)
    at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:31)
    at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1067)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1127)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:745)

"http-nio-8080-exec-5" #31 daemon prio=5 os_prio=0 tid=0x0000000021712000 nid=0x12c4 waiting on condition [0x00000000267ae000]
   java.lang.Thread.State: WAITING (parking)
    at sun.misc.Unsafe.park(Native Method)
    - parking to wait for  <0x00000000830901c0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
    at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
    at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
    at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:103)
    at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:31)
    at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1067)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1127)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:745)

"http-nio-8080-exec-4" #29 daemon prio=5 os_prio=0 tid=0x0000000021711800 nid=0x1098 waiting on condition [0x000000002047f000]
   java.lang.Thread.State: WAITING (parking)
    at sun.misc.Unsafe.park(Native Method)
    - parking to wait for  <0x00000000830901c0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
    at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
    at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
    at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:103)
    at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:31)
    at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1067)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1127)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:745)

"http-nio-8080-exec-3" #28 daemon prio=5 os_prio=0 tid=0x0000000021710800 nid=0x1c38 waiting on condition [0x000000001bbde000]
   java.lang.Thread.State: WAITING (parking)
    at sun.misc.Unsafe.park(Native Method)
    - parking to wait for  <0x00000000830901c0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
    at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
    at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
    at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:103)
    at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:31)
    at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1067)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1127)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:745)

"http-nio-8080-exec-2" #27 daemon prio=5 os_prio=0 tid=0x0000000021710000 nid=0x1dd0 waiting on condition [0x0000000022a2f000]
   java.lang.Thread.State: WAITING (parking)
    at sun.misc.Unsafe.park(Native Method)
    - parking to wait for  <0x00000000830901c0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
    at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
    at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
    at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:103)
    at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:31)
    at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1067)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1127)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:745)

"DestroyJavaVM" #26 prio=5 os_prio=0 tid=0x000000002170f000 nid=0x28cc waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"http-nio-8080-exec-1" #24 daemon prio=5 os_prio=0 tid=0x000000001ab7e800 nid=0x29f8 waiting on condition [0x0000000026d4e000]
   java.lang.Thread.State: WAITING (parking)
    at sun.misc.Unsafe.park(Native Method)
    - parking to wait for  <0x00000000830901c0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
    at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
    at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
    at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:103)
    at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:31)
    at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1067)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1127)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:745)

"http-nio-8080-Acceptor-0" #23 daemon prio=5 os_prio=0 tid=0x000000001ab7d800 nid=0x2a60 runnable [0x0000000026c2e000]
   java.lang.Thread.State: RUNNABLE
    at sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)
    at sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:422)
    at sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:250)
    - locked <0x00000000830c2f98> (a java.lang.Object)
    at org.apache.tomcat.util.net.NioEndpoint$Acceptor.run(NioEndpoint.java:682)
    at java.lang.Thread.run(Thread.java:745)

"http-nio-8080-ClientPoller-1" #22 daemon prio=5 os_prio=0 tid=0x000000001ab7d000 nid=0x2a00 runnable [0x000000002509e000]
   java.lang.Thread.State: RUNNABLE
    at sun.nio.ch.WindowsSelectorImpl$SubSelector.poll0(Native Method)
    at sun.nio.ch.WindowsSelectorImpl$SubSelector.poll(WindowsSelectorImpl.java:296)
    at sun.nio.ch.WindowsSelectorImpl$SubSelector.access$400(WindowsSelectorImpl.java:278)
    at sun.nio.ch.WindowsSelectorImpl.doSelect(WindowsSelectorImpl.java:159)
    at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:86)
    - locked <0x00000000830c3628> (a sun.nio.ch.Util$2)
    - locked <0x00000000830c3618> (a java.util.Collections$UnmodifiableSet)
    - locked <0x00000000830c3398> (a sun.nio.ch.WindowsSelectorImpl)
    at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:97)
    at org.apache.tomcat.util.net.NioEndpoint$Poller.run(NioEndpoint.java:1034)
    at java.lang.Thread.run(Thread.java:745)

"http-nio-8080-ClientPoller-0" #21 daemon prio=5 os_prio=0 tid=0x000000001ab7c000 nid=0x18b8 runnable [0x000000001891f000]
   java.lang.Thread.State: RUNNABLE
    at sun.nio.ch.WindowsSelectorImpl$SubSelector.poll0(Native Method)
    at sun.nio.ch.WindowsSelectorImpl$SubSelector.poll(WindowsSelectorImpl.java:296)
    at sun.nio.ch.WindowsSelectorImpl$SubSelector.access$400(WindowsSelectorImpl.java:278)
    at sun.nio.ch.WindowsSelectorImpl.doSelect(WindowsSelectorImpl.java:159)
    at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:86)
    - locked <0x00000000830c43a0> (a sun.nio.ch.Util$2)
    - locked <0x00000000830c4390> (a java.util.Collections$UnmodifiableSet)
    - locked <0x00000000830c4110> (a sun.nio.ch.WindowsSelectorImpl)
    at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:97)
    at org.apache.tomcat.util.net.NioEndpoint$Poller.run(NioEndpoint.java:1034)
    at java.lang.Thread.run(Thread.java:745)

"NioBlockingSelector.BlockPoller-1" #20 daemon prio=5 os_prio=0 tid=0x000000002168f800 nid=0x17fc runnable [0x0000000019a9f000]
   java.lang.Thread.State: RUNNABLE
    at sun.nio.ch.WindowsSelectorImpl.resetWakeupSocket0(Native Method)
    at sun.nio.ch.WindowsSelectorImpl.resetWakeupSocket(WindowsSelectorImpl.java:473)
    - locked <0x00000000830da710> (a java.lang.Object)
    at sun.nio.ch.WindowsSelectorImpl.doSelect(WindowsSelectorImpl.java:174)
    at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:86)
    - locked <0x00000000830d3130> (a sun.nio.ch.Util$2)
    - locked <0x00000000830d3120> (a java.util.Collections$UnmodifiableSet)
    - locked <0x00000000830d2fd0> (a sun.nio.ch.WindowsSelectorImpl)
    at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:97)
    at org.apache.tomcat.util.net.NioBlockingSelector$BlockPoller.run(NioBlockingSelector.java:342)

"Tomcat JDBC Pool Cleaner[349885916:1458815021571]" #19 daemon prio=5 os_prio=0 tid=0x000000001cc52800 nid=0x80c in Object.wait() [0x000000002258e000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    at java.util.TimerThread.mainLoop(Timer.java:552)
    - locked <0x00000000820f5608> (a java.util.TaskQueue)
    at java.util.TimerThread.run(Timer.java:505)

"container-0" #18 prio=5 os_prio=0 tid=0x000000001b2e9000 nid=0x2b44 waiting on condition [0x00000000226bf000]
   java.lang.Thread.State: TIMED_WAITING (sleeping)
    at java.lang.Thread.sleep(Native Method)
    at org.apache.catalina.core.StandardServer.await(StandardServer.java:407)
    at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer$1.run(TomcatEmbeddedServletContainer.java:140)

"ContainerBackgroundProcessor[StandardEngine[Tomcat].StandardHost[localhost].StandardContext[]]" #17 daemon prio=5 os_prio=0 tid=0x0000000018de5800 nid=0x2294 waiting on condition [0x000000002037f000]
   java.lang.Thread.State: TIMED_WAITING (sleeping)
    at java.lang.Thread.sleep(Native Method)
    at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1344)
    at java.lang.Thread.run(Thread.java:745)

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

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

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

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

"JDWP Event Helper Thread" #7 daemon prio=10 os_prio=0 tid=0x0000000018a3b800 nid=0x444 runnable [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

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

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

"Finalizer" #3 daemon prio=8 os_prio=1 tid=0x00000000174eb000 nid=0x1534 in Object.wait() [0x0000000018a1f000]
   java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:143)
    - locked <0x0000000081f3ddf0> (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)

"Reference Handler" #2 daemon prio=10 os_prio=2 tid=0x00000000174e9800 nid=0x2700 in Object.wait() [0x000000001881f000]
   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$ReferenceHandler.run(Reference.java:157)
    - locked <0x0000000081fa4788> (a java.lang.ref.Reference$Lock)

"VM Thread" os_prio=2 tid=0x00000000174e4000 nid=0x1070 runnable 

"GC task thread#0 (ParallelGC)" os_prio=0 tid=0x0000000002155000 nid=0x141c runnable 

"GC task thread#1 (ParallelGC)" os_prio=0 tid=0x0000000002156800 nid=0x2b9c runnable 

"GC task thread#2 (ParallelGC)" os_prio=0 tid=0x0000000002158000 nid=0x1c18 runnable 

"GC task thread#3 (ParallelGC)" os_prio=0 tid=0x0000000002159800 nid=0x1fa0 runnable 

"VM Periodic Task Thread" os_prio=2 tid=0x0000000018aca800 nid=0x1d74 waiting on condition 

JNI global references: 16054

The only related source that I could find was an old bug report: https://bz.apache.org/bugzilla/show_bug.cgi?id=45661 我能找到的唯一相关来源是旧的错误报告: https//bz.apache.org/bugzilla/show_bug.cgi?id = 45661

Any advice on how to solve or track this bug down? 有关如何解决或跟踪此错误的任何建议?

Try replacing protocols in Tomcat connectors to force using NIO.2 instead of NIO. 尝试替换Tomcat连接器中的协议以强制使用NIO.2而不是NIO。

Modify server.xml this way: 以这种方式修改server.xml:

<Connector port="8080"
  protocol="org.apache.coyote.http11.Http11Nio2Protocol"
  connectionTimeout="20000"
  redirectPort="8443" />
<Connector port="8009" 
  protocol="org.apache.coyote.ajp.AjpNio2Protocol" 
  redirectPort="8443" />

It seems that there is some Java bug when using NIO in this context. 在这种情况下使用NIO时似乎存在一些Java错误。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 春季启动测试启动应用程序 - Spring boot test starts Application Liberty/Bluemix 上的 Spring Boot 应用程序启动 Apache,将服务器标头附加到所有响应 - Spring Boot application on Liberty/Bluemix starts Apache, appends server header to all responses Spring Boot Application启动时,是否可以使用Spark将数据加载到内存中? - Is this possible to load data into memory using Spark when the Spring Boot Application starts ? Spring 启动 tomcat 使用 +4000% CPU - Spring boot tomcat using +4000% CPU Spring Cloud Consul高CPU在Spring Boot应用程序中 - spring cloud consul high cpu in a spring boot application 如何使用Maven从Spring Boot应用程序中删除所有jar - How to remove all the jars from a spring boot application using maven 构建 jar 文件但 (dockerize) Spring Boot 应用程序启动 - Build jar file but (dockerize) Spring Boot Application starts 似乎 spring-boot 开始两次开发 Web 应用程序 - It seems spring-boot starts twice developing web application 应用程序启动后的Spring Boot长期运行方法 - Spring boot long run method after application starts Spring 启动集成测试 - Mocking @Service 在应用程序上下文启动之前? - Spring Boot Integration Testing - Mocking @Service before Application Context Starts?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM