Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [jetty-dev] [jetty-users] Maven Jetty Plugin Slow with Java8

Hi,

I tried 9.2.10.v20150310 and it takes more than 10 minutes!!!! With Java7 and version 9.1.3.v20140225 it takes 8 seconds! I also think it's annotation scanning. Here's the threaddump:

petar@petar-ThinkPad-X1-Carbon:~/workspace/nemesis-bom$ $JAVA_HOME/bin/jstack 11911
2015-04-15 22:53:33
Full thread dump Java HotSpot(TM) 64-Bit Server VM (25.40-b25 mixed mode):

"Attach Listener" #21 daemon prio=9 os_prio=0 tid=0x00007f2e14001000 nid=0x2ecf waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"qtp1640832113-20" #20 prio=5 os_prio=0 tid=0x00007f2e4d034800 nid=0x2ea3 waiting on condition [0x00007f2e1d403000]
   java.lang.Thread.State: TIMED_WAITING (parking)
    at sun.misc.Unsafe.park(Native Method)
    - parking to wait for  <0x0000000081a865d8> (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:2078)
    at org.eclipse.jetty.util.BlockingArrayQueue.poll(BlockingArrayQueue.java:389)
    at org.eclipse.jetty.util.thread.QueuedThreadPool.idleJobPoll(QueuedThreadPool.java:531)
    at org.eclipse.jetty.util.thread.QueuedThreadPool.access$700(QueuedThreadPool.java:47)
    at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:590)
    at java.lang.Thread.run(Thread.java:745)

"qtp1640832113-19" #19 prio=5 os_prio=0 tid=0x00007f2e4d032800 nid=0x2ea2 waiting on condition [0x00007f2e1d504000]
   java.lang.Thread.State: TIMED_WAITING (parking)
    at sun.misc.Unsafe.park(Native Method)
    - parking to wait for  <0x0000000081a865d8> (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:2078)
    at org.eclipse.jetty.util.BlockingArrayQueue.poll(BlockingArrayQueue.java:389)
    at org.eclipse.jetty.util.thread.QueuedThreadPool.idleJobPoll(QueuedThreadPool.java:531)
    at org.eclipse.jetty.util.thread.QueuedThreadPool.access$700(QueuedThreadPool.java:47)
    at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:590)
    at java.lang.Thread.run(Thread.java:745)

"qtp1640832113-18" #18 prio=5 os_prio=0 tid=0x00007f2e4d030800 nid=0x2ea1 waiting on condition [0x00007f2e1d605000]
   java.lang.Thread.State: TIMED_WAITING (parking)
    at sun.misc.Unsafe.park(Native Method)
    - parking to wait for  <0x0000000081a865d8> (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:2078)
    at org.eclipse.jetty.util.BlockingArrayQueue.poll(BlockingArrayQueue.java:389)
    at org.eclipse.jetty.util.thread.QueuedThreadPool.idleJobPoll(QueuedThreadPool.java:531)
    at org.eclipse.jetty.util.thread.QueuedThreadPool.access$700(QueuedThreadPool.java:47)
    at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:590)
    at java.lang.Thread.run(Thread.java:745)

"qtp1640832113-17" #17 prio=5 os_prio=0 tid=0x00007f2e4d02e800 nid=0x2ea0 waiting on condition [0x00007f2e1d706000]
   java.lang.Thread.State: TIMED_WAITING (parking)
    at sun.misc.Unsafe.park(Native Method)
    - parking to wait for  <0x0000000081a865d8> (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:2078)
    at org.eclipse.jetty.util.BlockingArrayQueue.poll(BlockingArrayQueue.java:389)
    at org.eclipse.jetty.util.thread.QueuedThreadPool.idleJobPoll(QueuedThreadPool.java:531)
    at org.eclipse.jetty.util.thread.QueuedThreadPool.access$700(QueuedThreadPool.java:47)
    at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:590)
    at java.lang.Thread.run(Thread.java:745)

"qtp1640832113-16" #16 prio=5 os_prio=0 tid=0x00007f2e4d02c000 nid=0x2e9f waiting on condition [0x00007f2e1d807000]
   java.lang.Thread.State: TIMED_WAITING (parking)
    at sun.misc.Unsafe.park(Native Method)
    - parking to wait for  <0x0000000081a865d8> (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:2078)
    at org.eclipse.jetty.util.BlockingArrayQueue.poll(BlockingArrayQueue.java:389)
    at org.eclipse.jetty.util.thread.QueuedThreadPool.idleJobPoll(QueuedThreadPool.java:531)
    at org.eclipse.jetty.util.thread.QueuedThreadPool.access$700(QueuedThreadPool.java:47)
    at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:590)
    at java.lang.Thread.run(Thread.java:745)

"qtp1640832113-15" #15 prio=5 os_prio=0 tid=0x00007f2e4d02a000 nid=0x2e9e waiting on condition [0x00007f2e1d908000]
   java.lang.Thread.State: TIMED_WAITING (parking)
    at sun.misc.Unsafe.park(Native Method)
    - parking to wait for  <0x0000000081a865d8> (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:2078)
    at org.eclipse.jetty.util.BlockingArrayQueue.poll(BlockingArrayQueue.java:389)
    at org.eclipse.jetty.util.thread.QueuedThreadPool.idleJobPoll(QueuedThreadPool.java:531)
    at org.eclipse.jetty.util.thread.QueuedThreadPool.access$700(QueuedThreadPool.java:47)
    at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:590)
    at java.lang.Thread.run(Thread.java:745)

"qtp1640832113-14" #14 prio=5 os_prio=0 tid=0x00007f2e4d024800 nid=0x2e9d waiting on condition [0x00007f2e1da09000]
   java.lang.Thread.State: TIMED_WAITING (parking)
    at sun.misc.Unsafe.park(Native Method)
    - parking to wait for  <0x0000000081a865d8> (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:2078)
    at org.eclipse.jetty.util.BlockingArrayQueue.poll(BlockingArrayQueue.java:389)
    at org.eclipse.jetty.util.thread.QueuedThreadPool.idleJobPoll(QueuedThreadPool.java:531)
    at org.eclipse.jetty.util.thread.QueuedThreadPool.access$700(QueuedThreadPool.java:47)
    at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:590)
    at java.lang.Thread.run(Thread.java:745)

"qtp1640832113-13" #13 prio=5 os_prio=0 tid=0x00007f2e4d029000 nid=0x2e9c waiting on condition [0x00007f2e1e260000]
   java.lang.Thread.State: TIMED_WAITING (parking)
    at sun.misc.Unsafe.park(Native Method)
    - parking to wait for  <0x0000000081a865d8> (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:2078)
    at org.eclipse.jetty.util.BlockingArrayQueue.poll(BlockingArrayQueue.java:389)
    at org.eclipse.jetty.util.thread.QueuedThreadPool.idleJobPoll(QueuedThreadPool.java:531)
    at org.eclipse.jetty.util.thread.QueuedThreadPool.access$700(QueuedThreadPool.java:47)
    at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:590)
    at java.lang.Thread.run(Thread.java:745)

"ShutdownMonitor" #12 daemon prio=5 os_prio=0 tid=0x00007f2e4d002000 nid=0x2e9b runnable [0x00007f2e1e118000]
   java.lang.Thread.State: RUNNABLE
    at java.net.PlainSocketImpl.socketAccept(Native Method)
    at java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:404)
    at java.net.ServerSocket.implAccept(ServerSocket.java:545)
    at java.net.ServerSocket.accept(ServerSocket.java:513)
    at org.eclipse.jetty.server.ShutdownMonitor$ShutdownMonitorRunnable.run(ShutdownMonitor.java:114)
    at java.lang.Thread.run(Thread.java:745)

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

"C1 CompilerThread2" #7 daemon prio=9 os_prio=0 tid=0x00007f2e4c0be800 nid=0x2e97 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"C2 CompilerThread1" #6 daemon prio=9 os_prio=0 tid=0x00007f2e4c0bd000 nid=0x2e96 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

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

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

"Finalizer" #3 daemon prio=8 os_prio=0 tid=0x00007f2e4c07f000 nid=0x2e93 in Object.wait() [0x00007f2e3c1f0000]
   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 <0x000000008064f9b8> (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=0 tid=0x00007f2e4c07d000 nid=0x2e92 in Object.wait() [0x00007f2e3c2f1000]
   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 <0x0000000080657be8> (a java.lang.ref.Reference$Lock)

"main" #1 prio=5 os_prio=0 tid=0x00007f2e4c009800 nid=0x2e8c runnable [0x00007f2e55031000]
   java.lang.Thread.State: RUNNABLE
    at java.util.zip.ZipCoder.toString(ZipCoder.java:56)
    at java.util.zip.ZipFile.getZipEntry(ZipFile.java:567)
    at java.util.zip.ZipFile.access$900(ZipFile.java:61)
    at java.util.zip.ZipFile$ZipEntryIterator.next(ZipFile.java:525)
    - locked <0x00000000e1b25fb8> (a sun.net.www.protocol.jar.URLJarFile)
    at java.util.zip.ZipFile$ZipEntryIterator.nextElement(ZipFile.java:500)
    at java.util.zip.ZipFile$ZipEntryIterator.nextElement(ZipFile.java:481)
    at java.util.jar.JarFile$JarEntryIterator.next(JarFile.java:257)
    at java.util.jar.JarFile$JarEntryIterator.nextElement(JarFile.java:266)
    at java.util.jar.JarFile$JarEntryIterator.nextElement(JarFile.java:247)
    at org.eclipse.jetty.util.resource.JarFileResource.exists(JarFileResource.java:193)
    at org.eclipse.jetty.util.resource.JarFileResource.isDirectory(JarFileResource.java:247)
    at org.eclipse.jetty.util.resource.Resource.getAllResources(Resource.java:688)
    at org.eclipse.jetty.util.resource.Resource.getAllResources(Resource.java:689)
    at org.eclipse.jetty.util.resource.Resource.getAllResources(Resource.java:689)
    at org.eclipse.jetty.util.resource.Resource.getAllResources(Resource.java:689)
    at org.eclipse.jetty.util.resource.Resource.getAllResources(Resource.java:689)
    at org.eclipse.jetty.util.resource.Resource.getAllResources(Resource.java:689)
    at org.eclipse.jetty.util.resource.Resource.getAllResources(Resource.java:689)
    at org.eclipse.jetty.util.resource.Resource.getAllResources(Resource.java:689)
    at org.eclipse.jetty.util.resource.Resource.getAllResources(Resource.java:689)
    at org.eclipse.jetty.util.resource.Resource.getAllResources(Resource.java:689)
    at org.eclipse.jetty.util.resource.Resource.getAllResources(Resource.java:689)
    at org.eclipse.jetty.util.resource.Resource.getAllResources(Resource.java:689)
    at org.eclipse.jetty.webapp.MetaInfConfiguration.scanForTlds(MetaInfConfiguration.java:314)
    at org.eclipse.jetty.webapp.MetaInfConfiguration.scanJars(MetaInfConfiguration.java:135)
    at org.eclipse.jetty.webapp.MetaInfConfiguration.preConfigure(MetaInfConfiguration.java:86)
    at org.eclipse.jetty.webapp.WebAppContext.preConfigure(WebAppContext.java:468)
    at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:504)
    at org.eclipse.jetty.maven.plugin.JettyWebAppContext.doStart(JettyWebAppContext.java:365)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
    - locked <0x00000000819aff90> (a java.lang.Object)
    at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:132)
    at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:114)
    at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:61)
    at org.eclipse.jetty.server.handler.ContextHandlerCollection.doStart(ContextHandlerCollection.java:163)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
    - locked <0x00000000819afd50> (a java.lang.Object)
    at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:132)
    at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:114)
    at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:61)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
    - locked <0x00000000819ab3e0> (a java.lang.Object)
    at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:132)
    at org.eclipse.jetty.server.Server.start(Server.java:387)
    at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:114)
    at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:61)
    at org.eclipse.jetty.server.Server.doStart(Server.java:354)
    at org.eclipse.jetty.maven.plugin.JettyServer.doStart(JettyServer.java:73)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
    - locked <0x00000000819a3520> (a java.lang.Object)
    at org.eclipse.jetty.maven.plugin.AbstractJettyMojo.startJetty(AbstractJettyMojo.java:534)
    at org.eclipse.jetty.maven.plugin.AbstractJettyMojo.execute(AbstractJettyMojo.java:357)
    at org.eclipse.jetty.maven.plugin.JettyRunMojo.execute(JettyRunMojo.java:167)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:132)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:120)
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:355)
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:155)
    at org.apache.maven.cli.MavenCli.execute(MavenCli.java:584)
    at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:216)
    at org.apache.maven.cli.MavenCli.main(MavenCli.java:160)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)

"VM Thread" os_prio=0 tid=0x00007f2e4c078000 nid=0x2e91 runnable

"GC task thread#0 (ParallelGC)" os_prio=0 tid=0x00007f2e4c01f000 nid=0x2e8d runnable

"GC task thread#1 (ParallelGC)" os_prio=0 tid=0x00007f2e4c021000 nid=0x2e8e runnable

"GC task thread#2 (ParallelGC)" os_prio=0 tid=0x00007f2e4c022800 nid=0x2e8f runnable

"GC task thread#3 (ParallelGC)" os_prio=0 tid=0x00007f2e4c024800 nid=0x2e90 runnable

"VM Periodic Task Thread" os_prio=0 tid=0x00007f2e4c0ce800 nid=0x2e99 waiting on condition

JNI global references: 41


Is there any way to speed it up?


2015-04-15 22:48 GMT+03:00 Simone Bordet <sbordet@xxxxxxxxxxx>:
Hi,

On Wed, Apr 15, 2015 at 7:36 PM, Petar Tahchiev <paranoiabla@xxxxxxxxx> wrote:
> Hi guys,
>
> I upgraded to Java8 lately and so I had to upgrade my jetty-maven-plugin to
> 9.2+
> I tried all the versions 9.2+ of the maven jetty plugin, however the server
> is starting really slow. First it displays this:
>
>
> [INFO] <<< jetty-maven-plugin:9.2.0.v20140526:run (default-cli) <
> test-compile @ nemesis-console-backend <<<
> [INFO]
> [INFO] --- jetty-maven-plugin:9.2.0.v20140526:run (default-cli) @
> nemesis-console-backend ---
> [INFO] Logging initialized @5461ms
> [INFO] Configuring Jetty for project: Backend Web Console
> [INFO] webAppSourceDirectory not set. Trying src/main/webapp
> [INFO] Reload Mechanic: automatic
> [INFO] Classes =
> /home/petar/workspace/nemesis-consoles/nemesis-console-backend/target/classes
> [INFO] Context path = /backend
> [INFO] Tmp directory =
> /home/petar/workspace/nemesis-consoles/nemesis-console-backend/target/tmp
> [INFO] Web defaults = org/eclipse/jetty/webapp/webdefault.xml
> [INFO] Web overrides =  none
> [INFO] web.xml file =
> file:/home/petar/workspace/nemesis-consoles/nemesis-console-backend/src/main/webapp/WEB-INF/web.xml
> [INFO] Webapp directory =
> /home/petar/workspace/nemesis-consoles/nemesis-console-backend/src/main/webapp
> [INFO] jetty-9.2.0.v20140526
>
>
> and then it hangs for about 4 mins before it continue and eventually start
> properly. Does anyone else had this problem?

Please upgrade to 9.2.10.

If the problem remains, take a thread dump during those 4 minutes, it
should be clear what it is doing.
My guess is classpath scanning for annotations.

--
Simone Bordet
----
http://cometd.org
http://webtide.com
http://intalio.com
Developer advice, training, services and support
from the Jetty & CometD experts.
Intalio, the modern way to build business applications.
_______________________________________________
jetty-dev mailing list
jetty-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/jetty-dev



--
Regards, Petar!
Karlovo, Bulgaria.
---
Public PGP Key at: https://keyserver1.pgp.com/vkd/DownloadKey.event?keyid=0x19658550C3110611
Key Fingerprint: A369 A7EE 61BC 93A3 CDFF  55A5 1965 8550 C311 0611

Back to the top