{"action":"created","issue":{"url":"https://api.github.com/repos/dsyer/spring-boot-startup-bench/issues/4","repository_url":"https://api.github.com/repos/dsyer/spring-boot-startup-bench","labels_url":"https://api.github.com/repos/dsyer/spring-boot-startup-bench/issues/4/labels{/name}","comments_url":"https://api.github.com/repos/dsyer/spring-boot-startup-bench/issues/4/comments","events_url":"https://api.github.com/repos/dsyer/spring-boot-startup-bench/issues/4/events","html_url":"https://github.com/dsyer/spring-boot-startup-bench/issues/4","id":261954381,"number":4,"title":"A few problems building/running the benchmarks.","user":{"login":"tkvangorder","id":1878529,"avatar_url":"https://avatars2.githubusercontent.com/u/1878529?v=4","gravatar_id":"","url":"https://api.github.com/users/tkvangorder","html_url":"https://github.com/tkvangorder","followers_url":"https://api.github.com/users/tkvangorder/followers","following_url":"https://api.github.com/users/tkvangorder/following{/other_user}","gists_url":"https://api.github.com/users/tkvangorder/gists{/gist_id}","starred_url":"https://api.github.com/users/tkvangorder/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tkvangorder/subscriptions","organizations_url":"https://api.github.com/users/tkvangorder/orgs","repos_url":"https://api.github.com/users/tkvangorder/repos","events_url":"https://api.github.com/users/tkvangorder/events{/privacy}","received_events_url":"https://api.github.com/users/tkvangorder/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2017-10-01T23:11:18Z","updated_at":"2017-10-02T17:35:47Z","closed_at":"2017-10-02T15:36:15Z","author_association":"NONE","body":"First off, this is a really cool project. \r\n\r\nI know this is an \"experimental\" project, so I am not expecting any \"fixes\" for any of these issues and more just looking for guidance/validation to how I worked around those issues. \r\n\r\n- The maven build was failing in a couple of spots, due to unresolved dependencies with the plugins. I was able to fix those problems by adding `\t<pluginRepositories>` for spring-snapshots, spring-milestones, and spring-releases. I had to do this in several of the sub-modules (alt, static, etc) I suspect this is just that those repositories/dependencies are part of your local setup. \r\n\r\nOnce I put the following in most of the pom.xml files, things built cleanly: \r\n\r\n```\r\n\t<repositories>\r\n\t\t<repository>\r\n\t\t\t<id>spring-snapshots</id>\r\n\t\t\t<name>Spring Snapshots</name>\r\n\t\t\t<url>https://repo.spring.io/libs-snapshot-local</url>\r\n\t\t\t<snapshots>\r\n\t\t\t\t<enabled>true</enabled>\r\n\t\t\t</snapshots>\r\n\t\t</repository>\r\n\t\t<repository>\r\n\t\t\t<id>spring-milestones</id>\r\n\t\t\t<name>Spring Milestones</name>\r\n\t\t\t<url>https://repo.spring.io/libs-milestone-local</url>\r\n\t\t\t<snapshots>\r\n\t\t\t\t<enabled>false</enabled>\r\n\t\t\t</snapshots>\r\n\t\t</repository>\r\n\t\t<repository>\r\n\t\t\t<id>spring-releases</id>\r\n\t\t\t<name>Spring Releases</name>\r\n\t\t\t<url>https://repo.spring.io/release</url>\r\n\t\t\t<snapshots>\r\n\t\t\t\t<enabled>false</enabled>\r\n\t\t\t</snapshots>\r\n\t\t</repository>\r\n\t</repositories>\r\n\t<pluginRepositories>\r\n\t\t<pluginRepository>\r\n\t\t\t<id>spring-snapshots</id>\r\n\t\t\t<name>Spring Snapshots</name>\r\n\t\t\t<url>https://repo.spring.io/libs-snapshot-local</url>\r\n\t\t\t<snapshots>\r\n\t\t\t\t<enabled>true</enabled>\r\n\t\t\t</snapshots>\r\n\t\t</pluginRepository>\r\n\t\t<pluginRepository>\r\n\t\t\t<id>spring-milestones</id>\r\n\t\t\t<name>Spring Milestones</name>\r\n\t\t\t<url>https://repo.spring.io/libs-milestone-local</url>\r\n\t\t\t<snapshots>\r\n\t\t\t\t<enabled>false</enabled>\r\n\t\t\t</snapshots>\r\n\t\t</pluginRepository>\r\n\t\t<pluginRepository>\r\n\t\t\t<id>spring-releases</id>\r\n\t\t\t<name>Spring Releases</name>\r\n\t\t\t<url>https://repo.spring.io/release</url>\r\n\t\t\t<snapshots>\r\n\t\t\t\t<enabled>false</enabled>\r\n\t\t\t</snapshots>\r\n\t\t</pluginRepository>\r\n\t</pluginRepositories>\r\n```\r\n\r\n- After a successful build, I tried running the root benchmarks and some of the individual tests failed due to missing resources.  I realized there were a couple of project (like configserver) where it only generated one version of application (14x) and it was missing 13x & 15x. I figured out I needed to just run with the different profiles (which is what it looks like the \"alt\" sub-module is doing). I didnt dig much deeper to figure out what was going on, I am running the benchmarks again and capturing the entire log. I will investigate those results on a different weekend. 8) \r\n\r\n- In the static sub-module: I was able to run \"main\", \"strip\", and \"snap\" benchmarks, but the \"old\" benchmarks are \"frozen\" after the dependency resolution logging. No CPU usage after this freeze...it's a strange one and the last thing I see in the logs:\r\n\r\n```\r\n\r\n2017-10-01 14:53:42.327 [com.example.bench.OldBenchmark.old-jmh-worker-1] INFO  o.s.b.loader.thin.DependencyResolver - Resolved: org.slf4j:jcl-over-slf4j:1.7.25=/Users/tyler.vangorder/.m2/repository/org/slf4j/jcl-over-slf4j/1.7.25/jcl-over-slf4j-1.7.25.jar\r\n2017-10-01 14:53:42.327 [com.example.bench.OldBenchmark.old-jmh-worker-1] INFO  o.s.b.loader.thin.DependencyResolver - Resolved: org.springframework:spring-core:4.3.10.RELEASE=/Users/tyler.vangorder/.m2/repository/org/springframework/spring-core/4.3.10.RELEASE/spring-core-4.3.10.RELEASE.jar\r\n```\r\n"},"comment":{"url":"https://api.github.com/repos/dsyer/spring-boot-startup-bench/issues/comments/333606786","html_url":"https://github.com/dsyer/spring-boot-startup-bench/issues/4#issuecomment-333606786","issue_url":"https://api.github.com/repos/dsyer/spring-boot-startup-bench/issues/4","id":333606786,"user":{"login":"tkvangorder","id":1878529,"avatar_url":"https://avatars2.githubusercontent.com/u/1878529?v=4","gravatar_id":"","url":"https://api.github.com/users/tkvangorder","html_url":"https://github.com/tkvangorder","followers_url":"https://api.github.com/users/tkvangorder/followers","following_url":"https://api.github.com/users/tkvangorder/following{/other_user}","gists_url":"https://api.github.com/users/tkvangorder/gists{/gist_id}","starred_url":"https://api.github.com/users/tkvangorder/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tkvangorder/subscriptions","organizations_url":"https://api.github.com/users/tkvangorder/orgs","repos_url":"https://api.github.com/users/tkvangorder/repos","events_url":"https://api.github.com/users/tkvangorder/events{/privacy}","received_events_url":"https://api.github.com/users/tkvangorder/received_events","type":"User","site_admin":false},"created_at":"2017-10-02T17:35:46Z","updated_at":"2017-10-02T17:35:46Z","author_association":"NONE","body":"Thanks for the quick turn around, I have no idea how you balance your workload with all the feedback you are constantly dealing with!\r\n\r\nI suspect, I was running into the same threading issue with the old benchmarks, as I encountered with the overall benchmark test. I had to end up killing the forked process. I did capture a thread dump before killing on of the processes. \r\n\r\nThe jmh-worker-1, its a daemon thread..but looks like the main thread is waiting on it. And it looks to be blocked on itself, maybe some interplay to launching a process...pretty strange. \r\n```\r\n   java.lang.Thread.State: WAITING (on object monitor)\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <0x000000076b432238> (a java.lang.UNIXProcess)\r\n\tat java.lang.Object.wait(Object.java:502)\r\n\tat java.lang.UNIXProcess.waitFor(UNIXProcess.java:395)\r\n\t- locked <0x000000076b432238> (a java.lang.UNIXProcess)\r\n\tat com.example.ProcessLauncherState.capture(ProcessLauncherState.java:74)\r\n```\r\n\r\nAnd the whole thread dump for completeness.\r\n\r\n```java\r\nFull thread dump Java HotSpot(TM) 64-Bit Server VM (25.131-b11 mixed mode):\r\n\r\n\"Attach Listener\" #14 daemon prio=9 os_prio=31 tid=0x00007fc83d02a000 nid=0x130f waiting on condition [0x0000000000000000]\r\n   java.lang.Thread.State: RUNNABLE\r\n\r\n\"process reaper\" #13 daemon prio=10 os_prio=31 tid=0x00007fc83c8a5800 nid=0x5c03 runnable [0x0000700001600000]\r\n   java.lang.Thread.State: RUNNABLE\r\n\tat java.lang.UNIXProcess.waitForProcessExit(Native Method)\r\n\tat java.lang.UNIXProcess.lambda$initStreams$3(UNIXProcess.java:289)\r\n\tat java.lang.UNIXProcess$$Lambda$9/692924682.run(Unknown Source)\r\n\tat java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)\r\n\tat java.lang.Thread.run(Thread.java:748)\r\n\r\n\"com.example.SpringBootThinBenchmark.basic14xPrecomputeThin-jmh-worker-1\" #12 daemon prio=5 os_prio=31 tid=0x00007fc83c8a2800 nid=0x5a0f in Object.wait() [0x00007000015d4000]\r\n   java.lang.Thread.State: WAITING (on object monitor)\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <0x000000076b432238> (a java.lang.UNIXProcess)\r\n\tat java.lang.Object.wait(Object.java:502)\r\n\tat java.lang.UNIXProcess.waitFor(UNIXProcess.java:395)\r\n\t- locked <0x000000076b432238> (a java.lang.UNIXProcess)\r\n\tat com.example.ProcessLauncherState.capture(ProcessLauncherState.java:74)\r\n\tat com.example.SpringBootThinBenchmark$Basic14xPrecomputeThinState.compute(SpringBootThinBenchmark.java:103)\r\n\tat com.example.generated.SpringBootThinBenchmark_basic14xPrecomputeThin_jmhTest._jmh_tryInit_f_basic14xprecomputethinstate1_G(SpringBootThinBenchmark_basic14xPrecomputeThin_jmhTest.java:587)\r\n\t- locked <0x000000076b0fe328> (a java.lang.Class for com.example.generated.SpringBootThinBenchmark_basic14xPrecomputeThin_jmhTest)\r\n\tat com.example.generated.SpringBootThinBenchmark_basic14xPrecomputeThin_jmhTest.basic14xPrecomputeThin_AverageTime(SpringBootThinBenchmark_basic14xPrecomputeThin_jmhTest.java:199)\r\n\tat sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n\tat sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n\tat java.lang.reflect.Method.invoke(Method.java:498)\r\n\tat org.openjdk.jmh.runner.BenchmarkHandler$BenchmarkTask.call(BenchmarkHandler.java:464)\r\n\tat org.openjdk.jmh.runner.BenchmarkHandler$BenchmarkTask.call(BenchmarkHandler.java:448)\r\n\tat java.util.concurrent.FutureTask.run(FutureTask.java:266)\r\n\tat java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)\r\n\tat java.util.concurrent.FutureTask.run(FutureTask.java:266)\r\n\tat java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)\r\n\tat java.lang.Thread.run(Thread.java:748)\r\n\r\n\"Service Thread\" #9 daemon prio=9 os_prio=31 tid=0x00007fc83c01a000 nid=0x5203 runnable [0x0000000000000000]\r\n   java.lang.Thread.State: RUNNABLE\r\n\r\n\"C1 CompilerThread3\" #8 daemon prio=9 os_prio=31 tid=0x00007fc83b824000 nid=0x5003 waiting on condition [0x0000000000000000]\r\n   java.lang.Thread.State: RUNNABLE\r\n\r\n\"C2 CompilerThread2\" #7 daemon prio=9 os_prio=31 tid=0x00007fc83c81d000 nid=0x4e03 waiting on condition [0x0000000000000000]\r\n   java.lang.Thread.State: RUNNABLE\r\n\r\n\"C2 CompilerThread1\" #6 daemon prio=9 os_prio=31 tid=0x00007fc83c029000 nid=0x4c03 waiting on condition [0x0000000000000000]\r\n   java.lang.Thread.State: RUNNABLE\r\n\r\n\"C2 CompilerThread0\" #5 daemon prio=9 os_prio=31 tid=0x00007fc83d02d800 nid=0x4a03 waiting on condition [0x0000000000000000]\r\n   java.lang.Thread.State: RUNNABLE\r\n\r\n\"Signal Dispatcher\" #4 daemon prio=9 os_prio=31 tid=0x00007fc83d029800 nid=0x3b0f runnable [0x0000000000000000]\r\n   java.lang.Thread.State: RUNNABLE\r\n\r\n\"Finalizer\" #3 daemon prio=8 os_prio=31 tid=0x00007fc83b823000 nid=0x3803 in Object.wait() [0x0000700000d3a000]\r\n   java.lang.Thread.State: WAITING (on object monitor)\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <0x000000076ab08ec8> (a java.lang.ref.ReferenceQueue$Lock)\r\n\tat java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:143)\r\n\t- locked <0x000000076ab08ec8> (a java.lang.ref.ReferenceQueue$Lock)\r\n\tat java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:164)\r\n\tat java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:209)\r\n\r\n\"Reference Handler\" #2 daemon prio=10 os_prio=31 tid=0x00007fc83b820000 nid=0x3603 in Object.wait() [0x0000700000c37000]\r\n   java.lang.Thread.State: WAITING (on object monitor)\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <0x000000076ab06b68> (a java.lang.ref.Reference$Lock)\r\n\tat java.lang.Object.wait(Object.java:502)\r\n\tat java.lang.ref.Reference.tryHandlePending(Reference.java:191)\r\n\t- locked <0x000000076ab06b68> (a java.lang.ref.Reference$Lock)\r\n\tat java.lang.ref.Reference$ReferenceHandler.run(Reference.java:153)\r\n\r\n\"main\" #1 prio=5 os_prio=31 tid=0x00007fc83d001800 nid=0x1703 waiting on condition [0x0000700000219000]\r\n   java.lang.Thread.State: WAITING (parking)\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\t- parking to wait for  <0x000000076b2aeb20> (a java.util.concurrent.CountDownLatch$Sync)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:836)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:997)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1304)\r\n\tat java.util.concurrent.CountDownLatch.await(CountDownLatch.java:231)\r\n\tat org.openjdk.jmh.runner.InfraControlL2.awaitWarmupReady(InfraControl.java:219)\r\n\tat org.openjdk.jmh.runner.InfraControl.awaitWarmupReady(InfraControl.java:40)\r\n\tat org.openjdk.jmh.runner.BenchmarkHandler.runIteration(BenchmarkHandler.java:349)\r\n\tat org.openjdk.jmh.runner.BaseRunner.runBenchmark(BaseRunner.java:263)\r\n\tat org.openjdk.jmh.runner.BaseRunner.runBenchmark(BaseRunner.java:235)\r\n\tat org.openjdk.jmh.runner.BaseRunner.doSingle(BaseRunner.java:142)\r\n\tat org.openjdk.jmh.runner.BaseRunner.runBenchmarksForked(BaseRunner.java:76)\r\n\tat org.openjdk.jmh.runner.ForkedRunner.run(ForkedRunner.java:72)\r\n\tat org.openjdk.jmh.runner.ForkedMain.main(ForkedMain.java:84)\r\n\r\n\"VM Thread\" os_prio=31 tid=0x00007fc83b819800 nid=0x3403 runnable\r\n\r\n\"GC task thread#0 (ParallelGC)\" os_prio=31 tid=0x00007fc83d00d800 nid=0x2403 runnable\r\n\r\n\"GC task thread#1 (ParallelGC)\" os_prio=31 tid=0x00007fc83c007000 nid=0x2603 runnable\r\n\r\n\"GC task thread#2 (ParallelGC)\" os_prio=31 tid=0x00007fc83c008000 nid=0x2803 runnable\r\n\r\n\"GC task thread#3 (ParallelGC)\" os_prio=31 tid=0x00007fc83c008800 nid=0x2a03 runnable\r\n\r\n\"GC task thread#4 (ParallelGC)\" os_prio=31 tid=0x00007fc83b804000 nid=0x2c03 runnable\r\n\r\n\"GC task thread#5 (ParallelGC)\" os_prio=31 tid=0x00007fc83b80c800 nid=0x2e03 runnable\r\n\r\n\"GC task thread#6 (ParallelGC)\" os_prio=31 tid=0x00007fc83d00e000 nid=0x3003 runnable\r\n\r\n\"GC task thread#7 (ParallelGC)\" os_prio=31 tid=0x00007fc83d00e800 nid=0x3203 runnable\r\n\r\n\"VM Periodic Task Thread\" os_prio=31 tid=0x00007fc83e000000 nid=0x5403 waiting on condition\r\n\r\nJNI global references: 361\r\n\r\n```"}}
{"actor":{"display_login":"tkvangorder"}}