Merge remote-tracking branch 'origin/jetty-9.4.x' into jetty-10.0.x
This commit is contained in:
commit
76b38d20d4
|
@ -73,25 +73,59 @@ This is a dump of the OneServletContext embedded example with extra threadpool i
|
|||
|
||||
....
|
||||
Server@59906517{STARTED}[9.4.32-SNAPSHOT] - STARTED
|
||||
+= QueuedThreadPool[qtp1740189450]@67b92f0a{STARTED,8<=8<=200,i=5,r=4,q=0}[ReservedThreadExecutor@77e4c80f{s=0/4,p=0}] - STARTED
|
||||
| += ReservedThreadExecutor@77e4c80f{s=0/4,p=0} - STARTED
|
||||
+= QueuedThreadPool[qtp488044861]@1d16f93d{STARTED,8<=8<=200,i=2,r=4,q=0}[ReservedThreadExecutor@16267862{s=2/4,p=0}] - STARTED
|
||||
| += ReservedThreadExecutor@16267862{s=2/4,p=0} - STARTED
|
||||
| +> threads size=8
|
||||
| | +> 12 qtp1740189450-12 SELECTING RUNNABLE 5
|
||||
| | +> 14 qtp1740189450-14-acceptor-0@4c78251c-ServerConnector@76707e36{HTTP/1.1, (http/1.1)}{0.0.0.0:8080} ACCEPTING RUNNABLE 3
|
||||
| | +> 16 qtp1740189450-16 IDLE TIMED_WAITING 5
|
||||
| | +> 18 qtp1740189450-18 IDLE TIMED_WAITING 5
|
||||
| | +> 15 qtp1740189450-15 SELECTING RUNNABLE 5
|
||||
| | +> 19 qtp1740189450-19 IDLE TIMED_WAITING 5
|
||||
| | +> 17 qtp1740189450-17 IDLE TIMED_WAITING 5
|
||||
| | +> 13 qtp1740189450-13 IDLE TIMED_WAITING 5
|
||||
| | +> qtp488044861-13 RUNNABLE tid=13 prio=5 SELECTING
|
||||
| | +> qtp488044861-15-acceptor-0@296e0338-ServerConnector@1e6d1014{HTTP/1.1, (http/1.1)}{0.0.0.0:8080} RUNNABLE tid=15 prio=3 ACCEPTING
|
||||
| | +> qtp488044861-17 TIMED_WAITING tid=17 prio=5 RESERVED
|
||||
| | +> qtp488044861-19 RUNNABLE tid=19 prio=5
|
||||
| | | +> app//org.eclipse.jetty.http.pathmap.PathMappings.getMatch(PathMappings.java:130)
|
||||
| | | +> app//org.eclipse.jetty.servlet.ServletHandler.getMappedServlet(ServletHandler.java:591)
|
||||
| | | +> app//org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:474)
|
||||
| | | +> app//org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1582)
|
||||
| | | +> app//org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
|
||||
| | | +> app//org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1349)
|
||||
| | | +> app//org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
|
||||
| | | +> app//org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
|
||||
| | | +> app//org.eclipse.jetty.server.Server.handle(Server.java:516)
|
||||
| | | +> app//org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:383)
|
||||
| | | +> app//org.eclipse.jetty.server.HttpChannel$$Lambda$102/0x000000010016d440.dispatch(Unknown Source)
|
||||
| | | +> app//org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:556)
|
||||
| | | +> app//org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:375)
|
||||
| | | +> app//org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:273)
|
||||
| | | +> app//org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
|
||||
| | | +> app//org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)
|
||||
| | | +> app//org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104)
|
||||
| | | +> app//org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336)
|
||||
| | | +> app//org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313)
|
||||
| | | +> app//org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171)
|
||||
| | | +> app//org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129)
|
||||
| | | +> app//org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:375)
|
||||
| | | +> app//org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:773)
|
||||
| | | +> app//org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:905)
|
||||
| | | +> java.base@11.0.5/java.lang.Thread.run(Thread.java:834)
|
||||
| | +> qtp488044861-16 TIMED_WAITING tid=16 prio=5 RESERVED
|
||||
| | +> qtp488044861-21 RUNNABLE tid=21 prio=5 SELECTING
|
||||
| | +> qtp488044861-18 TIMED_WAITING tid=18 prio=5 IDLE
|
||||
| | +> qtp488044861-14 TIMED_WAITING tid=14 prio=5 IDLE
|
||||
| +> jobs size=0
|
||||
+= ServerConnector@76707e36{HTTP/1.1, (http/1.1)}{0.0.0.0:8080} - STARTED
|
||||
+= ServerConnector@1e6d1014{HTTP/1.1, (http/1.1)}{0.0.0.0:8080} - STARTED
|
||||
| +~ Server@59906517{STARTED}[9.4.32-SNAPSHOT] - STARTED
|
||||
| +~ QueuedThreadPool[qtp1740189450]@67b92f0a{STARTED,8<=8<=200,i=5,r=4,q=0}[ReservedThreadExecutor@77e4c80f{s=0/4,p=0}] - STARTED
|
||||
| += ScheduledExecutorScheduler@7fe8ea47{STARTED} - STARTED
|
||||
| +- org.eclipse.jetty.io.ArrayByteBufferPool@226a82c4
|
||||
| += HttpConnectionFactory@711f39f9[HTTP/1.1] - STARTED
|
||||
| | +- HttpConfiguration@731f8236{32768/8192,8192/8192,https://:0,[]}
|
||||
| +~ QueuedThreadPool[qtp488044861]@1d16f93d{STARTED,8<=8<=200,i=2,r=4,q=0}[ReservedThreadExecutor@16267862{s=2/4,p=0}] - STARTED
|
||||
| += ScheduledExecutorScheduler@453da22c{STARTED} - STARTED
|
||||
| | +> java.base@11.0.5/jdk.internal.misc.Unsafe.park(Native Method)
|
||||
| | +> java.base@11.0.5/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:234)
|
||||
| | +> java.base@11.0.5/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2123)
|
||||
| | +> java.base@11.0.5/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1182)
|
||||
| | +> java.base@11.0.5/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:899)
|
||||
| | +> java.base@11.0.5/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1054)
|
||||
| | +> java.base@11.0.5/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114)
|
||||
| | +> java.base@11.0.5/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
|
||||
| | +> java.base@11.0.5/java.lang.Thread.run(Thread.java:834)
|
||||
| +- org.eclipse.jetty.io.ArrayByteBufferPool@71248c21
|
||||
| += HttpConnectionFactory@3fd7a715[HTTP/1.1] - STARTED
|
||||
| | +- HttpConfiguration@442675e1{32768/8192,8192/8192,https://:0,[]}
|
||||
| | +> customizers size=0
|
||||
| | +> formEncodedMethods size=2
|
||||
| | | +> POST
|
||||
|
@ -117,65 +151,66 @@ Server@59906517{STARTED}[9.4.32-SNAPSHOT] - STARTED
|
|||
| | +> setRequestCookieCompliance=RFC6265
|
||||
| | +> notifyRemoteAsyncErrors=true
|
||||
| | +> relativeRedirectAllowed=false
|
||||
| += SelectorManager@ServerConnector@76707e36{HTTP/1.1, (http/1.1)}{0.0.0.0:8080} - STARTED
|
||||
| | += ManagedSelector@564718df{STARTED} id=0 keys=0 selected=0 updates=0 - STARTED
|
||||
| | | += EatWhatYouKill@51b7e5df/SelectorProducer@18a70f16/PRODUCING/p=false/QueuedThreadPool[qtp1740189450]@67b92f0a{STARTED,8<=8<=200,i=5,r=4,q=0}[ReservedThreadExecutor@77e4c80f{s=0/4,p=0}][pc=0,pic=0,pec=0,epc=0]@2020-08-26T08:51:02.711784+10:00 - STARTED
|
||||
| | | | +- SelectorProducer@18a70f16
|
||||
| | | | +~ QueuedThreadPool[qtp1740189450]@67b92f0a{STARTED,8<=8<=200,i=5,r=4,q=0}[ReservedThreadExecutor@77e4c80f{s=0/4,p=0}] - STARTED
|
||||
| | | +> updates @ 2020-08-26T08:51:02.705944+10:00 size=0
|
||||
| | | +> keys @ 2020-08-26T08:51:02.706914+10:00 size=0
|
||||
| | += ManagedSelector@62e136d3{STARTED} id=1 keys=0 selected=0 updates=0 - STARTED
|
||||
| | += EatWhatYouKill@c8e4bb0/SelectorProducer@6279cee3/PRODUCING/p=false/QueuedThreadPool[qtp1740189450]@67b92f0a{STARTED,8<=8<=200,i=5,r=4,q=0}[ReservedThreadExecutor@77e4c80f{s=0/4,p=0}][pc=0,pic=0,pec=0,epc=0]@2020-08-26T08:51:02.717119+10:00 - STARTED
|
||||
| | | +- SelectorProducer@6279cee3
|
||||
| | | +~ QueuedThreadPool[qtp1740189450]@67b92f0a{STARTED,8<=8<=200,i=5,r=4,q=0}[ReservedThreadExecutor@77e4c80f{s=0/4,p=0}] - STARTED
|
||||
| | +> updates @ 2020-08-26T08:51:02.715887+10:00 size=0
|
||||
| | +> keys @ 2020-08-26T08:51:02.716158+10:00 size=0
|
||||
| += SelectorManager@ServerConnector@1e6d1014{HTTP/1.1, (http/1.1)}{0.0.0.0:8080} - STARTED
|
||||
| | += ManagedSelector@38364841{STARTED} id=0 keys=0 selected=0 updates=0 - STARTED
|
||||
| | | += EatWhatYouKill@28c4711c/SelectorProducer@59717824/PRODUCING/p=false/QueuedThreadPool[qtp488044861]@1d16f93d{STARTED,8<=8<=200,i=2,r=4,q=0}[ReservedThreadExecutor@16267862{s=2/4,p=0}][pc=0,pic=0,pec=0,epc=0]@2020-09-04T10:57:20.077669+10:00 - STARTED
|
||||
| | | | +- SelectorProducer@59717824
|
||||
| | | | +~ QueuedThreadPool[qtp488044861]@1d16f93d{STARTED,8<=8<=200,i=2,r=4,q=0}[ReservedThreadExecutor@16267862{s=2/4,p=0}] - STARTED
|
||||
| | | +> updates @ 2020-09-04T10:57:20.058489+10:00 size=0
|
||||
| | | +> keys @ 2020-09-04T10:57:20.061714+10:00 size=0
|
||||
| | += ManagedSelector@146044d7{STARTED} id=1 keys=1 selected=0 updates=0 - STARTED
|
||||
| | += EatWhatYouKill@1e9e725a/SelectorProducer@15d9bc04/PRODUCING/p=false/QueuedThreadPool[qtp488044861]@1d16f93d{STARTED,8<=8<=200,i=2,r=4,q=0}[ReservedThreadExecutor@16267862{s=2/4,p=0}][pc=0,pic=0,pec=1,epc=14]@2020-09-04T10:57:20.082696+10:00 - STARTED
|
||||
| | | +- SelectorProducer@15d9bc04
|
||||
| | | +~ QueuedThreadPool[qtp488044861]@1d16f93d{STARTED,8<=8<=200,i=2,r=4,q=0}[ReservedThreadExecutor@16267862{s=2/4,p=0}] - STARTED
|
||||
| | +> updates @ 2020-09-04T10:57:20.078661+10:00 size=0
|
||||
| | +> keys @ 2020-09-04T10:57:20.082035+10:00 size=1
|
||||
| | +> SelectionKey@74bb45ed{i=0}->SocketChannelEndPoint@569ef11f{l=/127.0.0.1:8080,r=/127.0.0.1:58702,OPEN,fill=-,flush=-,to=3/30000}{io=0/0,kio=0,kro=1}->HttpConnection@25b03990[p=HttpParser{s=CONTENT,0 of -1},g=HttpGenerator@218fb9fe{s=START}]=>HttpChannelOverHttp@648d33ab{s=HttpChannelState@717b7e16{s=HANDLING rs=BLOCKING os=OPEN is=IDLE awp=false se=false i=true al=0},r=54,c=false/false,a=HANDLING,uri=//localhost:8080/,age=4}
|
||||
| +- sun.nio.ch.ServerSocketChannelImpl[/0:0:0:0:0:0:0:0:8080]
|
||||
| +- qtp1740189450-14-acceptor-0@4c78251c-ServerConnector@76707e36{HTTP/1.1, (http/1.1)}{0.0.0.0:8080}
|
||||
+= AttributeContainerMap@4206a205{size=0} - STARTED
|
||||
+= o.e.j.s.ServletContextHandler@4ba2ca36{/,file:///tmp/,AVAILABLE} - STARTED
|
||||
| += org.eclipse.jetty.server.session.SessionHandler2007331442==dftMaxIdleSec=-1 - STARTED
|
||||
| | += ServletHandler@29ba4338{STARTED} - STARTED
|
||||
| | | +> listeners ServletHandler@29ba4338{STARTED} size=2
|
||||
| | | | +> ListenerHolder@57175e74{STARTED}: org.eclipse.jetty.embedded.OneServletContext$InitListener - STARTED
|
||||
| | | | +> ListenerHolder@7bb58ca3{STARTED}: org.eclipse.jetty.embedded.OneServletContext$RequestListener - STARTED
|
||||
| | | +> filters ServletHandler@29ba4338{STARTED} size=2
|
||||
| | | | +> org.eclipse.jetty.embedded.OneServletContext$TestFilter-29b5cd00@29b5cd00==org.eclipse.jetty.embedded.OneServletContext$TestFilter,inst=true,async=true - STARTED
|
||||
| | | | | +> org.eclipse.jetty.embedded.OneServletContext$TestFilter@c540f5a
|
||||
| | | | +> org.eclipse.jetty.embedded.OneServletContext$TestFilter-7113b13f@7113b13f==org.eclipse.jetty.embedded.OneServletContext$TestFilter,inst=true,async=true - STARTED
|
||||
| | | | +> org.eclipse.jetty.embedded.OneServletContext$TestFilter@770c2e6b
|
||||
| | | +> filterMappings ServletHandler@29ba4338{STARTED} size=2
|
||||
| | | | +> [/test/*]/[]/[REQUEST]=>org.eclipse.jetty.embedded.OneServletContext$TestFilter-29b5cd00
|
||||
| | | | +> [*.test]/[]/[REQUEST, ASYNC]=>org.eclipse.jetty.embedded.OneServletContext$TestFilter-7113b13f
|
||||
| | | +> servlets ServletHandler@29ba4338{STARTED} size=3
|
||||
| | | | +> org.eclipse.jetty.embedded.HelloServlet-6b57696f@99887e98==org.eclipse.jetty.embedded.HelloServlet,jsp=null,order=-1,inst=false,async=true - STARTED
|
||||
| +- qtp488044861-15-acceptor-0@296e0338-ServerConnector@1e6d1014{HTTP/1.1, (http/1.1)}{0.0.0.0:8080}
|
||||
+= AttributeContainerMap@473b46c3{size=0} - STARTED
|
||||
+= o.e.j.s.ServletContextHandler@3ffcd140{/,file:///tmp/,AVAILABLE} - STARTED
|
||||
| += org.eclipse.jetty.server.session.SessionHandler1089504328==dftMaxIdleSec=-1 - STARTED
|
||||
| | += ServletHandler@516be40f{STARTED} - STARTED
|
||||
| | | +> listeners ServletHandler@516be40f{STARTED} size=2
|
||||
| | | | +> ListenerHolder@3c0a50da{STARTED}: org.eclipse.jetty.embedded.OneServletContext$InitListener - STARTED
|
||||
| | | | +> ListenerHolder@646be2c3{STARTED}: org.eclipse.jetty.embedded.OneServletContext$RequestListener - STARTED
|
||||
| | | +> filters ServletHandler@516be40f{STARTED} size=2
|
||||
| | | | +> org.eclipse.jetty.embedded.OneServletContext$TestFilter-e874448@e874448==org.eclipse.jetty.embedded.OneServletContext$TestFilter,inst=true,async=true - STARTED
|
||||
| | | | | +> org.eclipse.jetty.embedded.OneServletContext$TestFilter@797badd3
|
||||
| | | | +> org.eclipse.jetty.embedded.OneServletContext$TestFilter-60285225@60285225==org.eclipse.jetty.embedded.OneServletContext$TestFilter,inst=true,async=true - STARTED
|
||||
| | | | +> org.eclipse.jetty.embedded.OneServletContext$TestFilter@77be656f
|
||||
| | | +> filterMappings ServletHandler@516be40f{STARTED} size=2
|
||||
| | | | +> [/test/*]/[]/[REQUEST]=>org.eclipse.jetty.embedded.OneServletContext$TestFilter-e874448
|
||||
| | | | +> [*.test]/[]/[ASYNC, REQUEST]=>org.eclipse.jetty.embedded.OneServletContext$TestFilter-60285225
|
||||
| | | +> servlets ServletHandler@516be40f{STARTED} size=3
|
||||
| | | | +> org.eclipse.jetty.embedded.HelloServlet-58c1670b@d20bf05b==org.eclipse.jetty.embedded.HelloServlet,jsp=null,order=-1,inst=false,async=true - STARTED
|
||||
| | | | | +> class org.eclipse.jetty.embedded.HelloServlet
|
||||
| | | | +> debug@5b09653==org.eclipse.jetty.embedded.DumpServlet,jsp=null,order=-1,inst=false,async=true - STARTED
|
||||
| | | | | +> class org.eclipse.jetty.embedded.DumpServlet
|
||||
| | | | +> org.eclipse.jetty.servlet.DefaultServlet-38bc8ab5@f1bd2681==org.eclipse.jetty.servlet.DefaultServlet,jsp=null,order=-1,inst=false,async=true - STARTED
|
||||
| | | | +> class org.eclipse.jetty.servlet.DefaultServlet
|
||||
| | | +> servletMappings ServletHandler@29ba4338{STARTED} size=4
|
||||
| | | +> [/hello/*]=>org.eclipse.jetty.embedded.HelloServlet-6b57696f
|
||||
| | | | +> org.eclipse.jetty.servlet.DefaultServlet-6b9651f3@8eb381d1==org.eclipse.jetty.servlet.DefaultServlet,jsp=null,order=-1,inst=true,async=true - STARTED
|
||||
| | | | +> org.eclipse.jetty.servlet.DefaultServlet@78a2da20
|
||||
| | | +> servletMappings ServletHandler@516be40f{STARTED} size=4
|
||||
| | | +> [/hello/*]=>org.eclipse.jetty.embedded.HelloServlet-58c1670b
|
||||
| | | +> [/dump/*]=>debug
|
||||
| | | +> [*.dump]=>debug
|
||||
| | | +> [/]=>org.eclipse.jetty.servlet.DefaultServlet-38bc8ab5
|
||||
| | += org.eclipse.jetty.server.session.DefaultSessionCache@6328d34a[evict=-1,removeUnloadable=false,saveOnCreate=false,saveOnInactiveEvict=false] - STARTED
|
||||
| | | += org.eclipse.jetty.server.session.NullSessionDataStore@145eaa29[passivating=false,graceSec=3600] - STARTED
|
||||
| | +~ DefaultSessionIdManager@15bb6bea{STARTED}[worker=node0] - STARTED
|
||||
| | | +> [/]=>org.eclipse.jetty.servlet.DefaultServlet-6b9651f3
|
||||
| | += org.eclipse.jetty.server.session.DefaultSessionCache@dd3b207[evict=-1,removeUnloadable=false,saveOnCreate=false,saveOnInactiveEvict=false] - STARTED
|
||||
| | | += org.eclipse.jetty.server.session.NullSessionDataStore@551bdc27[passivating=false,graceSec=3600] - STARTED
|
||||
| | +~ DefaultSessionIdManager@58fdd99{STARTED}[worker=node0] - STARTED
|
||||
| +> No ClassLoader
|
||||
| +> eventListeners o.e.j.s.ServletContextHandler@4ba2ca36{/,file:///tmp/,AVAILABLE} size=2
|
||||
| | +> org.eclipse.jetty.embedded.OneServletContext$InitListener@8b96fde
|
||||
| | +> org.eclipse.jetty.embedded.OneServletContext$RequestListener@2d2e5f00
|
||||
| +> handler attributes o.e.j.s.ServletContextHandler@4ba2ca36{/,file:///tmp/,AVAILABLE} size=1
|
||||
| | +> org.eclipse.jetty.server.Executor=QueuedThreadPool[qtp1740189450]@67b92f0a{STARTED,8<=8<=200,i=5,r=4,q=0}[ReservedThreadExecutor@77e4c80f{s=0/4,p=0}]
|
||||
| +> context attributes o.e.j.s.ServletContextHandler@4ba2ca36{/,file:///tmp/,AVAILABLE} size=2
|
||||
| +> eventListeners o.e.j.s.ServletContextHandler@3ffcd140{/,file:///tmp/,AVAILABLE} size=2
|
||||
| | +> org.eclipse.jetty.embedded.OneServletContext$InitListener@6b1274d2
|
||||
| | +> org.eclipse.jetty.embedded.OneServletContext$RequestListener@7bc1a03d
|
||||
| +> handler attributes o.e.j.s.ServletContextHandler@3ffcd140{/,file:///tmp/,AVAILABLE} size=1
|
||||
| | +> org.eclipse.jetty.server.Executor=QueuedThreadPool[qtp488044861]@1d16f93d{STARTED,8<=8<=200,i=2,r=4,q=0}[ReservedThreadExecutor@16267862{s=2/4,p=0}]
|
||||
| +> context attributes o.e.j.s.ServletContextHandler@3ffcd140{/,file:///tmp/,AVAILABLE} size=2
|
||||
| | +> org.eclipse.jetty.util.DecoratedObjectFactory=org.eclipse.jetty.util.DecoratedObjectFactory[decorators=1]
|
||||
| | +> X-Init=true
|
||||
| +> initparams o.e.j.s.ServletContextHandler@4ba2ca36{/,file:///tmp/,AVAILABLE} size=0
|
||||
+= ErrorHandler@2ea6137{STARTED} - STARTED
|
||||
+= DefaultSessionIdManager@15bb6bea{STARTED}[worker=node0] - STARTED
|
||||
| += HouseKeeper@3439f68d{STARTED}[interval=660000, ownscheduler=true] - STARTED
|
||||
| +> initparams o.e.j.s.ServletContextHandler@3ffcd140{/,file:///tmp/,AVAILABLE} size=0
|
||||
+= ErrorHandler@ba8d91c{STARTED} - STARTED
|
||||
+= DefaultSessionIdManager@58fdd99{STARTED}[worker=node0] - STARTED
|
||||
| += HouseKeeper@60438a68{STARTED}[interval=660000, ownscheduler=true] - STARTED
|
||||
+> jdk.internal.loader.ClassLoaders$AppClassLoader@2c13da15
|
||||
+> jdk.internal.loader.ClassLoaders$PlatformClassLoader@41ee392b
|
||||
+> jdk.internal.loader.ClassLoaders$PlatformClassLoader@7364985f
|
||||
key: +- bean, += managed, +~ unmanaged, +? auto, +: iterable, +] array, +@ map, +> undefined
|
||||
....
|
||||
|
|
|
@ -718,74 +718,41 @@ public class QueuedThreadPool extends ContainerLifeCycle implements ThreadFactor
|
|||
public void dump(Appendable out, String indent) throws IOException
|
||||
{
|
||||
List<Object> threads = new ArrayList<>(getMaxThreads());
|
||||
for (final Thread thread : _threads)
|
||||
for (Thread thread : _threads)
|
||||
{
|
||||
final StackTraceElement[] trace = thread.getStackTrace();
|
||||
String knownMethod = "";
|
||||
for (StackTraceElement t : trace)
|
||||
{
|
||||
if ("idleJobPoll".equals(t.getMethodName()) && t.getClassName().equals(Runner.class.getName()))
|
||||
{
|
||||
knownMethod = "IDLE ";
|
||||
break;
|
||||
}
|
||||
StackTraceElement[] trace = thread.getStackTrace();
|
||||
String stackTag = getCompressedStackTag(trace);
|
||||
String baseThreadInfo = String.format("%s %s tid=%d prio=%d", thread.getName(), thread.getState(), thread.getId(), thread.getPriority());
|
||||
|
||||
if ("reservedWait".equals(t.getMethodName()) && t.getClassName().endsWith("ReservedThread"))
|
||||
{
|
||||
knownMethod = "RESERVED ";
|
||||
break;
|
||||
}
|
||||
|
||||
if ("select".equals(t.getMethodName()) && t.getClassName().endsWith("SelectorProducer"))
|
||||
{
|
||||
knownMethod = "SELECTING ";
|
||||
break;
|
||||
}
|
||||
|
||||
if ("accept".equals(t.getMethodName()) && t.getClassName().contains("ServerConnector"))
|
||||
{
|
||||
knownMethod = "ACCEPTING ";
|
||||
break;
|
||||
}
|
||||
}
|
||||
final String known = knownMethod;
|
||||
|
||||
if (isDetailedDump())
|
||||
{
|
||||
threads.add(new Dumpable()
|
||||
{
|
||||
@Override
|
||||
public void dump(Appendable out, String indent) throws IOException
|
||||
{
|
||||
if (StringUtil.isBlank(known))
|
||||
Dumpable.dumpObjects(out, indent, String.format("%s %s %s %d", thread.getId(), thread.getName(), thread.getState(), thread.getPriority()), (Object[])trace);
|
||||
else
|
||||
Dumpable.dumpObjects(out, indent, String.format("%s %s %s %s %d", thread.getId(), thread.getName(), known, thread.getState(), thread.getPriority()));
|
||||
}
|
||||
|
||||
@Override
|
||||
public String dump()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
});
|
||||
}
|
||||
if (!StringUtil.isBlank(stackTag))
|
||||
threads.add(baseThreadInfo + " " + stackTag);
|
||||
else if (isDetailedDump())
|
||||
threads.add((Dumpable)(o, i) -> Dumpable.dumpObjects(o, i, baseThreadInfo, (Object[])trace));
|
||||
else
|
||||
{
|
||||
int p = thread.getPriority();
|
||||
threads.add(thread.getId() + " " + thread.getName() + " " + known + thread.getState() + " @ " + (trace.length > 0 ? trace[0] : "???") + (p == Thread.NORM_PRIORITY ? "" : (" prio=" + p)));
|
||||
}
|
||||
threads.add(baseThreadInfo + " @ " + (trace.length > 0 ? trace[0].toString() : "???"));
|
||||
}
|
||||
|
||||
DumpableCollection threadsDump = new DumpableCollection("threads", threads);
|
||||
if (isDetailedDump())
|
||||
{
|
||||
List<Runnable> jobs = new ArrayList<>(getQueue());
|
||||
dumpObjects(out, indent, new DumpableCollection("threads", threads), new DumpableCollection("jobs", jobs));
|
||||
}
|
||||
dumpObjects(out, indent, threadsDump, new DumpableCollection("jobs", new ArrayList<>(getQueue())));
|
||||
else
|
||||
dumpObjects(out, indent, threadsDump);
|
||||
}
|
||||
|
||||
private String getCompressedStackTag(StackTraceElement[] trace)
|
||||
{
|
||||
for (StackTraceElement t : trace)
|
||||
{
|
||||
dumpObjects(out, indent, new DumpableCollection("threads", threads));
|
||||
if ("idleJobPoll".equals(t.getMethodName()) && t.getClassName().equals(Runner.class.getName()))
|
||||
return "IDLE";
|
||||
if ("reservedWait".equals(t.getMethodName()) && t.getClassName().endsWith("ReservedThread"))
|
||||
return "RESERVED";
|
||||
if ("select".equals(t.getMethodName()) && t.getClassName().endsWith("SelectorProducer"))
|
||||
return "SELECTING";
|
||||
if ("accept".equals(t.getMethodName()) && t.getClassName().contains("ServerConnector"))
|
||||
return "ACCEPTING";
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -799,8 +799,8 @@ public class QueuedThreadPoolTest extends AbstractThreadPoolTest
|
|||
assertThat(count(dump, " - STARTED"), is(2));
|
||||
assertThat(dump, containsString(",3<=3<=4,i=3,r=2,q=0"));
|
||||
assertThat(dump, containsString("[ReservedThreadExecutor@"));
|
||||
assertThat(count(dump, " IDLE "), is(3));
|
||||
assertThat(count(dump, " RESERVED "), is(0));
|
||||
assertThat(count(dump, " IDLE"), is(3));
|
||||
assertThat(count(dump, " RESERVED"), is(0));
|
||||
|
||||
CountDownLatch started = new CountDownLatch(1);
|
||||
CountDownLatch waiting = new CountDownLatch(1);
|
||||
|
@ -822,9 +822,9 @@ public class QueuedThreadPoolTest extends AbstractThreadPoolTest
|
|||
assertThat(count(dump, " - STARTED"), is(2));
|
||||
assertThat(dump, containsString(",3<=3<=4,i=2,r=2,q=0"));
|
||||
assertThat(dump, containsString("[ReservedThreadExecutor@"));
|
||||
assertThat(count(dump, " IDLE "), is(2));
|
||||
assertThat(count(dump, " WAITING "), is(1));
|
||||
assertThat(count(dump, " RESERVED "), is(0));
|
||||
assertThat(count(dump, " IDLE"), is(2));
|
||||
assertThat(count(dump, " WAITING"), is(1));
|
||||
assertThat(count(dump, " RESERVED"), is(0));
|
||||
assertThat(count(dump, "QueuedThreadPoolTest.lambda$testDump$"), is(0));
|
||||
|
||||
pool.setDetailedDump(true);
|
||||
|
@ -833,9 +833,9 @@ public class QueuedThreadPoolTest extends AbstractThreadPoolTest
|
|||
assertThat(dump, containsString(",3<=3<=4,i=2,r=2,q=0"));
|
||||
assertThat(dump, containsString("s=0/2"));
|
||||
assertThat(dump, containsString("[ReservedThreadExecutor@"));
|
||||
assertThat(count(dump, " IDLE "), is(2));
|
||||
assertThat(count(dump, " WAITING "), is(1));
|
||||
assertThat(count(dump, " RESERVED "), is(0));
|
||||
assertThat(count(dump, " IDLE"), is(2));
|
||||
assertThat(count(dump, " WAITING"), is(1));
|
||||
assertThat(count(dump, " RESERVED"), is(0));
|
||||
assertThat(count(dump, "QueuedThreadPoolTest.lambda$testDump$"), is(1));
|
||||
|
||||
assertFalse(pool.tryExecute(() ->
|
||||
|
@ -848,9 +848,9 @@ public class QueuedThreadPoolTest extends AbstractThreadPoolTest
|
|||
assertThat(dump, containsString(",3<=3<=4,i=1,r=2,q=0"));
|
||||
assertThat(dump, containsString("s=1/2"));
|
||||
assertThat(dump, containsString("[ReservedThreadExecutor@"));
|
||||
assertThat(count(dump, " IDLE "), is(1));
|
||||
assertThat(count(dump, " WAITING "), is(1));
|
||||
assertThat(count(dump, " RESERVED "), is(1));
|
||||
assertThat(count(dump, " IDLE"), is(1));
|
||||
assertThat(count(dump, " WAITING"), is(1));
|
||||
assertThat(count(dump, " RESERVED"), is(1));
|
||||
assertThat(count(dump, "QueuedThreadPoolTest.lambda$testDump$"), is(1));
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue