Closed chanseokoh closed 6 years ago
Full log: m2_repo_corruption.txt
I can also see artifacts downloaded twice locally, but there is only one worker.
I think I know why it downloads artifacts twice. For example, if you open two Maven projects in Eclipse at the same time that use a same artifact, it will download the artifact twice. So I guess it's not a problematic situation. (But so far, I've seen my local Eclipse use only one worker even if it downloads twice.)
Perhaps m2e bug 514691? Igor suggests there to launch Eclipse with -Daether.connector.resumeDownloads=false
.
aether.connector.resumeDownloads=false
doesn't seem to have done anything:
A [INFO] --- tycho-surefire-plugin:1.0.0:test (default-test) @ com.google.cloud.tools.eclipse.integration.appengine ---
A [INFO] Expected eclipse log file: T:\src\github\google-cloud-eclipse\plugins\com.google.cloud.tools.eclipse.integration.appengine\target\work\data\.metadata\.log
A [INFO] Command line:
A [C:\Program Files\Java\jdk1.8.0_144\jre\bin\java.exe, -Dosgi.noShutdown=false, -Dosgi.os=win32, -Dosgi.ws=win32, -Dosgi.arch=x86_64, -Daether.connector.resumeDownloads=false, -Dorg.eclipse.swtbot.search.timeout=30000, -Xms40m, -Xmx1G, -XX:MaxPermSize=512m, -Djava.awt.headless=true, -Dosgi.clean=true, -jar, C:\Users\builder\.m2\repository\p2\osgi\bundle\org.eclipse.equinox.launcher\1.4.0.v20161219-1356\org.eclipse.equinox.launcher-1.4.0.v20161219-1356.jar, -debug, -consolelog, -data, T:\src\github\google-cloud-eclipse\plugins\com.google.cloud.tools.eclipse.integration.appengine\target\work\data, -install, T:\src\github\google-cloud-eclipse\plugins\com.google.cloud.tools.eclipse.integration.appengine\target\work, -configuration, T:\src\github\google-cloud-eclipse\plugins\com.google.cloud.tools.eclipse.integration.appengine\target\work\configuration, -application, org.eclipse.tycho.surefire.osgibooter.uitest, -testproperties, T:\src\github\google-cloud-eclipse\plugins\com.google.cloud.tools.eclipse.integration.appengine\target\surefire.properties, -product, org.eclipse.platform.ide, -nouithread]
[…]
A -------------------------------------------------------
A Running com.google.cloud.tools.eclipse.integration.appengine.WebFragmentWarPublishTest
A 05:06:13.026 [Worker-6] INFO o.e.m.c.i.l.LifecycleMappingFactory - Using org.maven.ide.eclipse.wtp.WarLifecycleMapping lifecycle mapping for MavenProject: com.example:web-fragment-example:0.1.0-SNAPSHOT @ T:\src\github\google-cloud-eclipse\plugins\com.google.cloud.tools.eclipse.integration.appengine\target\work\data\web-fragment-example\pom.xml.
A 05:06:13.823 [Worker-3] INFO o.e.m.c.i.l.LifecycleMappingFactory - Using org.maven.ide.eclipse.wtp.WarLifecycleMapping lifecycle mapping for MavenProject: com.example:web-fragment-example:0.1.0-SNAPSHOT @ T:\src\github\google-cloud-eclipse\plugins\com.google.cloud.tools.eclipse.integration.appengine\target\work\data\web-fragment-example\pom.xml.
A 05:06:14.260 [Worker-3] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/spring-web/4.3.8.RELEASE/spring-web-4.3.8.RELEASE.pom
A 05:06:14.260 [Worker-6] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/spring-web/4.3.8.RELEASE/spring-web-4.3.8.RELEASE.pom
A 05:06:14.307 [Worker-3] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/spring-web/4.3.8.RELEASE/spring-web-4.3.8.RELEASE.pom
A 05:06:14.338 [Worker-3] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/spring-aop/4.3.8.RELEASE/spring-aop-4.3.8.RELEASE.pom
A 05:06:14.354 [Worker-6] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/spring-web/4.3.8.RELEASE/spring-web-4.3.8.RELEASE.pom
A 05:06:14.354 [Worker-3] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/spring-aop/4.3.8.RELEASE/spring-aop-4.3.8.RELEASE.pom
A 05:06:14.401 [Worker-6] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/spring-beans/4.3.8.RELEASE/spring-beans-4.3.8.RELEASE.pom
A 05:06:14.401 [Worker-3] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/spring-beans/4.3.8.RELEASE/spring-beans-4.3.8.RELEASE.pom
A 05:06:14.416 [Worker-6] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/spring-beans/4.3.8.RELEASE/spring-beans-4.3.8.RELEASE.pom
A 05:06:14.432 [Worker-3] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/spring-beans/4.3.8.RELEASE/spring-beans-4.3.8.RELEASE.pom
A 05:06:14.432 [Worker-6] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/spring-core/4.3.8.RELEASE/spring-core-4.3.8.RELEASE.pom
A 05:06:14.448 [Worker-6] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/spring-core/4.3.8.RELEASE/spring-core-4.3.8.RELEASE.pom
A 05:06:14.479 [Worker-3] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/spring-core/4.3.8.RELEASE/spring-core-4.3.8.RELEASE.pom
A 05:06:14.479 [Worker-6] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/commons-logging/commons-logging/1.2/commons-logging-1.2.pom
A 05:06:14.495 [Worker-3] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/spring-core/4.3.8.RELEASE/spring-core-4.3.8.RELEASE.pom
A 05:06:14.510 [Worker-6] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/commons-logging/commons-logging/1.2/commons-logging-1.2.pom
A 05:06:14.526 [Worker-3] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/commons-logging/commons-logging/1.2/commons-logging-1.2.pom
A 05:06:14.541 [Worker-6] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/spring-context/4.3.8.RELEASE/spring-context-4.3.8.RELEASE.pom
A 05:06:14.557 [Worker-3] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/commons-logging/commons-logging/1.2/commons-logging-1.2.pom
Let's try disabling Maven parallel artifact downloading…
I noticed two things:
WebFragmentWarPublishTest
; the subsequent failures in NewMavenBasedAppEngineProjectWizardTest
and ImportMavenAppEngineProjectTest
arises because of the corrupted artifact from WFWPT)LifecycleMappingFactory
messages in WFWPT (on those same worker threads), whereas in in NewMavenBasedAppEngineProjectWizardTest
, there's only a single entry for LifecycleMappingFactory
I wonder if we're somehow importing the project twice, or if a second project is being found and imported?
Looking at the build on master
on Travis, only a single LifecycleMappingFactory
appears per test (there are two tests, one running at 16:23:17.337 and the other at 16:23:20.195). So something might be odd on Windows?
Running com.google.cloud.tools.eclipse.integration.appengine.WebFragmentWarPublishTest
16:23:17.337 [Worker-1] INFO o.e.m.c.i.l.LifecycleMappingFactory - Using org.maven.ide.eclipse.wtp.WarLifecycleMapping lifecycle mapping for MavenProject: com.example:web-fragment-example:0.1.0-SNAPSHOT @ /home/travis/build/GoogleCloudPlatform/google-cloud-eclipse/plugins/com.google.cloud.tools.eclipse.integration.appengine/target/work/data/web-fragment-example/pom.xml.
16:23:18.903 [Worker-1] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered resources.
16:23:18.904 [Worker-1] INFO o.e.m.c.i.embedder.EclipseLogger - skip non existing resourceDirectory /home/travis/build/GoogleCloudPlatform/google-cloud-eclipse/plugins/com.google.cloud.tools.eclipse.integration.appengine/target/work/data/web-fragment-example/src/main/resources
16:23:18.907 [Worker-1] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered resources.
16:23:18.908 [Worker-1] INFO o.e.m.c.i.embedder.EclipseLogger - skip non existing resourceDirectory /home/travis/build/GoogleCloudPlatform/google-cloud-eclipse/plugins/com.google.cloud.tools.eclipse.integration.appengine/target/work/data/web-fragment-example/src/test/resources
16:23:20.195 [Worker-6] INFO o.e.m.c.i.l.LifecycleMappingFactory - Using org.maven.ide.eclipse.wtp.WarLifecycleMapping lifecycle mapping for MavenProject: com.example:web-fragment-example:0.1.0-SNAPSHOT @ /home/travis/build/GoogleCloudPlatform/google-cloud-eclipse/plugins/com.google.cloud.tools.eclipse.integration.appengine/target/work/data/web-fragment-example/pom.xml.
16:23:25.111 [Worker-4] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered resources.
16:23:25.111 [Worker-4] INFO o.e.m.c.i.embedder.EclipseLogger - skip non existing resourceDirectory /home/travis/build/GoogleCloudPlatform/google-cloud-eclipse/plugins/com.google.cloud.tools.eclipse.integration.appengine/target/work/data/web-fragment-example/src/main/resources
16:23:25.118 [Worker-4] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered resources.
16:23:25.118 [Worker-4] INFO o.e.m.c.i.embedder.EclipseLogger - skip non existing resourceDirectory /home/travis/build/GoogleCloudPlatform/google-cloud-eclipse/plugins/com.google.cloud.tools.eclipse.integration.appengine/target/work/data/web-fragment-example/src/test/resources
ProjectUtils#waitForProjects[12.11 s]: waiting for 1 jobs: [Building workspace(4)]
Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 14.104 sec - in com.google.cloud.tools.eclipse.integration.appengine.WebFragmentWarPublishTest
testPublishWar_webFragmentJarPublished(com.google.cloud.tools.eclipse.integration.appengine.WebFragmentWarPublishTest) Time elapsed: 1.317 sec
testPublishExploded_webFragmentJarPublished(com.google.cloud.tools.eclipse.integration.appengine.WebFragmentWarPublishTest) Time elapsed: 0.045 sec
Alternative hypothesis: the WFWPT tests are somehow being run in parallel. JUnit's parallelism is opt-in, and the parallel
property doesn't seem to be set, so this shouldn't happen. Let's see if the WFWPT's setUp()
method is being called twice.
I looked at a recent Kokoro build and noticed that the WebFragmentWarPublishTest LifecycleMappingFactory
log message now seems serialized with the downloading. So it looks like the maven.artifact.threads=1
setting has done the trick; I wish I could recall where I found this property referenced.
Marking as closed; will re-open if we see the issue re-appear.
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Running com.google.cloud.tools.eclipse.integration.appengine.WebFragmentWarPublishTest
+-------------------------------------------------------------------------------
| STACK DUMP @ null: WebFragmentWarPublishTest.setUp() from Thread[WorkbenchTestable,6,main] at 2067182315070
|
|
| 30 jobs:
| RUNNING{pri=30,system,thr=Thread[Worker-6,5,main]} Refreshing view(33) (org.eclipse.ui.internal.views.markers.UIUpdateJob)
| RUNNING{pri=30,system,thr=Thread[Worker-8,5,main]} Activating working set updaters for bundle org.hamcrest.core(59) (org.eclipse.ui.internal.AbstractWorkingSetManager$8)
| RUNNING{pri=30,system,thr=Thread[Worker-8,5,main]} Activating working set updaters for bundle com.google.cloud.tools.eclipse.integration.appengine(54) (org.eclipse.ui.internal.AbstractWorkingSetManager$8)
| RUNNING{pri=30,system,thr=Thread[Worker-6,5,main]} Activating working set updaters for bundle org.eclipse.equinox.security(37) (org.eclipse.ui.internal.AbstractWorkingSetManager$8)
| RUNNING{pri=30,system,thr=Thread[Worker-1,5,main]} Activating working set updaters for bundle com.google.cloud.tools.eclipse.appengine.deploy(57) (org.eclipse.ui.internal.AbstractWorkingSetManager$8)
| RUNNING{pri=30,system,thr=Thread[Worker-5,5,main]} Activating working set updaters for bundle org.eclipse.equinox.p2.ui.sdk.scheduler(48) (org.eclipse.ui.internal.AbstractWorkingSetManager$8)
| RUNNING{pri=30,system,thr=Thread[Worker-0,5,main]} Activating working set updaters for bundle org.eclipse.equinox.p2.repository(51) (org.eclipse.ui.internal.AbstractWorkingSetManager$8)
| RUNNING{pri=30,system,thr=Thread[Worker-0,5,main]} Activating working set updaters for bundle org.eclipse.swtbot.eclipse.finder(56) (org.eclipse.ui.internal.AbstractWorkingSetManager$8)
| RUNNING{pri=30,system,thr=Thread[Worker-4,5,main]} Activating working set updaters for bundle org.eclipse.equinox.p2.core(42) (org.eclipse.ui.internal.AbstractWorkingSetManager$8)
| RUNNING{pri=30,system,thr=Thread[Worker-7,5,main]} Activating working set updaters for bundle com.google.cloud.tools.eclipse.login(41) (org.eclipse.ui.internal.AbstractWorkingSetManager$8)
| RUNNING{pri=30,system,thr=Thread[Worker-4,5,main]} Activating working set updaters for bundle com.google.cloud.tools.eclipse.dataflow.ui(58) (org.eclipse.ui.internal.AbstractWorkingSetManager$8)
| RUNNING{pri=30,system,thr=Thread[Worker-2,5,main]} Starting Java Tooling initialization(24) (org.eclipse.jdt.internal.ui.InitializeAfterLoadJob)
| RUNNING{pri=30,system,thr=Thread[Worker-2,5,main]} Activating working set updaters for bundle org.eclipse.ui.net(38) (org.eclipse.ui.internal.AbstractWorkingSetManager$8)
| RUNNING{pri=30,system,thr=Thread[Worker-7,5,main]} Change cursor(31) (org.eclipse.ui.internal.progress.WorkbenchSiteProgressService$SiteUpdateJob)
| RUNNING{pri=30,system,thr=Thread[Worker-4,5,main]} Activating working set updaters for bundle org.eclipse.ui.intro(34) (org.eclipse.ui.internal.AbstractWorkingSetManager$8)
| RUNNING{pri=30,system,thr=Thread[Worker-6,5,main]} Activating working set updaters for bundle org.eclipse.equinox.p2.engine(44) (org.eclipse.ui.internal.AbstractWorkingSetManager$8)
| RUNNING{pri=30,system,thr=Thread[Worker-9,5,main]} Activating working set updaters for bundle com.google.cloud.tools.eclipse.test.util(60) (org.eclipse.ui.internal.AbstractWorkingSetManager$8)
| RUNNING{pri=30,system,thr=Thread[Worker-0,5,main]} Activating working set updaters for bundle org.eclipse.equinox.p2.metadata(46) (org.eclipse.ui.internal.AbstractWorkingSetManager$8)
| RUNNING{pri=30,system,thr=Thread[Worker-4,5,main]} Activating working set updaters for bundle org.eclipse.ui.intro.universal(35) (org.eclipse.ui.internal.AbstractWorkingSetManager$8)
| RUNNING{pri=30,system,thr=Thread[Worker-7,5,main]} Update for Decoration Completion(45) (org.eclipse.ui.internal.decorators.DecorationScheduler$3)
| RUNNING{pri=30,system,thr=Thread[Worker-3,5,main]} Activating working set updaters for bundle org.eclipse.swtbot.swt.finder(55) (org.eclipse.ui.internal.AbstractWorkingSetManager$8)
| RUNNING{pri=30,system,thr=Thread[Worker-7,5,main]} Activating working set updaters for bundle org.eclipse.m2e.discovery(52) (org.eclipse.ui.internal.AbstractWorkingSetManager$8)
| RUNNING{pri=30,system,thr=Thread[Worker-1,5,main]} Activating working set updaters for bundle org.eclipse.ui.monitoring(53) (org.eclipse.ui.internal.AbstractWorkingSetManager$8)
| RUNNING{pri=30,system,thr=Thread[Worker-4,5,main]} Activating working set updaters for bundle org.eclipse.core.net(39) (org.eclipse.ui.internal.AbstractWorkingSetManager$8)
| RUNNING{pri=30,system,thr=Thread[Worker-5,5,main]} Activating working set updaters for bundle org.eclipse.equinox.p2.operations(43) (org.eclipse.ui.internal.AbstractWorkingSetManager$8)
| RUNNING{pri=30,system,thr=Thread[Worker-6,5,main]} Activating working set updaters for bundle org.eclipse.equinox.p2.updatechecker(49) (org.eclipse.ui.internal.AbstractWorkingSetManager$8)
| RUNNING{pri=30,system,thr=Thread[Worker-2,5,main]} Activating working set updaters for bundle org.eclipse.equinox.p2.metadata.repository(50) (org.eclipse.ui.internal.AbstractWorkingSetManager$8)
| RUNNING{pri=30,thr=Thread[Worker-7,5,main]} Project Explorer(28) (org.eclipse.ui.navigator.CommonNavigatorManager$UpdateActionBarsJob)
| SLEEPING{pri=30,system} Workbench Auto-Save Job(15) (org.eclipse.ui.internal.Workbench$41)
| SLEEPING{pri=50,system} Compacting resource model(12) (org.eclipse.core.internal.utils.StringPoolJob)
|
| "main" [1] RUNNABLE (in native code)
| at org.eclipse.swt.internal.ole.win32.COM.VtblCall(Native Method)
| at org.eclipse.swt.internal.ole.win32.IDispatch.GetTypeInfo(IDispatch.java:58)
| at org.eclipse.swt.ole.win32.OleAutomation.<init>(OleAutomation.java:101)
| at org.eclipse.swt.ole.win32.Variant.getAutomation(Variant.java:277)
| at org.eclipse.swt.browser.IE.hookDOMListeners(IE.java:1973)
| at org.eclipse.swt.browser.IE.lambda$6(IE.java:778)
| at org.eclipse.swt.browser.IE$$Lambda$260/1817615535.handleEvent(Unknown Source)
| at org.eclipse.swt.ole.win32.OleEventTable.sendEvent(OleEventTable.java:55)
| at org.eclipse.swt.ole.win32.OleEventSink.notifyListener(OleEventSink.java:156)
| at org.eclipse.swt.ole.win32.OleEventSink.Invoke(OleEventSink.java:124)
| at org.eclipse.swt.ole.win32.OleEventSink.access$1(OleEventSink.java:101)
| at org.eclipse.swt.ole.win32.OleEventSink$1.method6(OleEventSink.java:75)
| at org.eclipse.swt.internal.ole.win32.COMObject.callback6(COMObject.java:119)
| at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method)
| at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:2560)
| at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3815)
| at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1155)
| at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336)
| at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1044)
| at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:153)
| at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:680)
| at org.eclipse.ui.internal.Workbench$$Lambda$14/2054332292.run(Unknown Source)
| at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336)
| at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:594)
| at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:148)
| at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:151)
| at org.eclipse.tycho.surefire.osgibooter.UITestApplication.runApplication(UITestApplication.java:31)
| at org.eclipse.tycho.surefire.osgibooter.AbstractUITestApplication.run(AbstractUITestApplication.java:120)
| at org.eclipse.tycho.surefire.osgibooter.UITestApplication.start(UITestApplication.java:37)
| at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
| at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
| at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
| at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:388)
| at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243)
| 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:498)
| at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:653)
| at org.eclipse.equinox.launcher.Main.basicRun(Main.java:590)
| at org.eclipse.equinox.launcher.Main.run(Main.java:1499)
| at org.eclipse.equinox.launcher.Main.main(Main.java:1472)
|
| "Attach Listener" [5] RUNNABLE
|
| "Resolver thread - Equinox Container: 847098b2-9e2f-4e2f-b387-121cd31d9acb" [11] TIMED_WAITING on java.util.concurrent.SynchronousQueue$TransferStack@4778f117
| at sun.misc.Unsafe.park(Native Method)
| - waiting on java.util.concurrent.SynchronousQueue$TransferStack@4778f117
| 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:1073)
| at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
| at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
| at java.lang.Thread.run(Thread.java:748)
|
| "Resolver thread - Equinox Container: 847098b2-9e2f-4e2f-b387-121cd31d9acb" [12] TIMED_WAITING on java.util.concurrent.SynchronousQueue$TransferStack@4778f117
| at sun.misc.Unsafe.park(Native Method)
| - waiting on java.util.concurrent.SynchronousQueue$TransferStack@4778f117
| 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:1073)
| at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
| at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
| at java.lang.Thread.run(Thread.java:748)
|
| "Resolver thread - Equinox Container: 847098b2-9e2f-4e2f-b387-121cd31d9acb" [19] TIMED_WAITING on java.util.concurrent.SynchronousQueue$TransferStack@4778f117
| at sun.misc.Unsafe.park(Native Method)
| - waiting on java.util.concurrent.SynchronousQueue$TransferStack@4778f117
| 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:1073)
| at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
| at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
| at java.lang.Thread.run(Thread.java:748)
|
| "Java indexing" [28] WAITING on org.eclipse.jdt.internal.core.search.indexing.IndexManager@40cf4d89
| at java.lang.Object.wait(Native Method)
| - waiting on org.eclipse.jdt.internal.core.search.indexing.IndexManager@40cf4d89
| at java.lang.Object.wait(Object.java:502)
| at org.eclipse.jdt.internal.core.search.processing.JobManager.run(JobManager.java:373)
| at java.lang.Thread.run(Thread.java:748)
|
| "EventAdmin Async Event Dispatcher Thread" [29] WAITING on org.eclipse.swt.widgets.RunnableLock@40f11c20
| at java.lang.Object.wait(Native Method)
| - waiting on org.eclipse.swt.widgets.RunnableLock@40f11c20
| at java.lang.Object.wait(Object.java:502)
| at org.eclipse.swt.widgets.Synchronizer.syncExec(Synchronizer.java:250)
| at org.eclipse.ui.internal.UISynchronizer.syncExec(UISynchronizer.java:144)
| at org.eclipse.swt.widgets.Display.syncExec(Display.java:4889)
| at org.eclipse.e4.ui.internal.workbench.swt.E4Application$1.syncExec(E4Application.java:212)
| at org.eclipse.e4.ui.internal.di.UIEventObjectSupplier$UIEventHandler.handleEvent(UIEventObjectSupplier.java:61)
| at org.eclipse.equinox.internal.event.EventHandlerWrapper.handleEvent(EventHandlerWrapper.java:201)
| at org.eclipse.equinox.internal.event.EventHandlerTracker.dispatchEvent(EventHandlerTracker.java:197)
| at org.eclipse.equinox.internal.event.EventHandlerTracker.dispatchEvent(EventHandlerTracker.java:1)
| at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
| at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340)
|
| "WorkbenchTestable" [33] RUNNABLE
| at sun.management.ThreadImpl.dumpThreads0(Native Method)
| at sun.management.ThreadImpl.dumpAllThreads(ThreadImpl.java:454)
| at com.google.cloud.tools.eclipse.test.util.ThreadDumpingWatchdog.run(ThreadDumpingWatchdog.java:122)
| at com.google.cloud.tools.eclipse.test.util.ThreadDumpingWatchdog.report(ThreadDumpingWatchdog.java:72)
| at com.google.cloud.tools.eclipse.integration.appengine.WebFragmentWarPublishTest.setUp(WebFragmentWarPublishTest.java:46)
| 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:498)
| at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
| at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
| at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
| at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)
| at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
| at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
| at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:264)
| at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:153)
| at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:124)
| 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:498)
| at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray2(ReflectionUtils.java:208)
| at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:156)
| at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:82)
| at org.eclipse.tycho.surefire.osgibooter.OsgiSurefireBooter.run(OsgiSurefireBooter.java:95)
| at org.eclipse.tycho.surefire.osgibooter.AbstractUITestApplication.runTests(AbstractUITestApplication.java:44)
| at org.eclipse.e4.ui.internal.workbench.swt.E4Testable.lambda$0(E4Testable.java:73)
| at org.eclipse.e4.ui.internal.workbench.swt.E4Testable$$Lambda$271/1810711373.run(Unknown Source)
| at java.lang.Thread.run(Thread.java:748)
|
| Ignored threads:
| "Reference Handler" [2] WAITING on java.lang.ref.Reference$Lock@43ba3152
| "Finalizer" [3] WAITING on java.lang.ref.ReferenceQueue$Lock@309f5521
| "Signal Dispatcher" [4] RUNNABLE
| "Active Thread: Equinox Container: 847098b2-9e2f-4e2f-b387-121cd31d9acb" [13] TIMED_WAITING on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@e069b9e
| "Framework Event Dispatcher: org.eclipse.osgi.internal.framework.EquinoxEventPublisher@5056dfcb" [15] WAITING on org.eclipse.osgi.framework.eventmgr.EventManager$EventThread@570437f4
| "Start Level: Equinox Container: 847098b2-9e2f-4e2f-b387-121cd31d9acb" [16] WAITING on org.eclipse.osgi.framework.eventmgr.EventManager$EventThread@57f49454
| "Bundle File Closer" [17] WAITING on org.eclipse.osgi.framework.eventmgr.EventManager$EventThread@2023c087
| "Refresh Thread: Equinox Container: 847098b2-9e2f-4e2f-b387-121cd31d9acb" [18] WAITING on org.eclipse.osgi.framework.eventmgr.EventManager$EventThread@5ff0d567
| "SCR Component Actor" [20] WAITING on java.util.LinkedList@7d615837
| "Worker-JM" [21] WAITING on java.util.ArrayList@35b942bc
| "Worker-0" [25] TIMED_WAITING on org.eclipse.core.internal.jobs.WorkerPool@5aafc061
| "EMF Reference Cleaner" [26] WAITING on java.lang.ref.ReferenceQueue$Lock@11313433
| "Worker-1" [30] TIMED_WAITING on org.eclipse.core.internal.jobs.WorkerPool@5aafc061
| "Worker-2" [31] TIMED_WAITING on org.eclipse.core.internal.jobs.WorkerPool@5aafc061
| "Worker-3" [32] TIMED_WAITING on org.eclipse.core.internal.jobs.WorkerPool@5aafc061
| "Worker-4" [34] TIMED_WAITING on org.eclipse.core.internal.jobs.WorkerPool@5aafc061
| "Worker-5" [35] TIMED_WAITING on org.eclipse.core.internal.jobs.WorkerPool@5aafc061
| "Worker-6" [36] TIMED_WAITING on org.eclipse.core.internal.jobs.WorkerPool@5aafc061
| "Worker-7" [37] TIMED_WAITING on org.eclipse.core.internal.jobs.WorkerPool@5aafc061
| "Worker-8" [38] TIMED_WAITING on org.eclipse.core.internal.jobs.WorkerPool@5aafc061
| "Worker-9" [39] TIMED_WAITING on org.eclipse.core.internal.jobs.WorkerPool@5aafc061
| ELAPSED TIME: 41.40 ms
+-------------------------------------------------------------------------------
Importing 1 projects:
T:/src/github/google-cloud-eclipse/plugins/com.google.cloud.tools.eclipse.integration.appengine/target/work/data/web-fragment-example/.project
21:36:50.753 [Worker-2] INFO o.e.m.c.i.l.LifecycleMappingFactory - Using org.maven.ide.eclipse.wtp.WarLifecycleMapping lifecycle mapping for MavenProject: com.example:web-fragment-example:0.1.0-SNAPSHOT @ T:\src\github\google-cloud-eclipse\plugins\com.google.cloud.tools.eclipse.integration.appengine\target\work\data\web-fragment-example\pom.xml.
21:36:51.878 [Worker-2] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/spring-web/4.3.8.RELEASE/spring-web-4.3.8.RELEASE.pom
21:36:51.910 [Worker-2] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/spring-web/4.3.8.RELEASE/spring-web-4.3.8.RELEASE.pom
21:36:51.925 [Worker-2] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/spring-aop/4.3.8.RELEASE/spring-aop-4.3.8.RELEASE.pom
21:36:51.941 [Worker-2] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/spring-aop/4.3.8.RELEASE/spring-aop-4.3.8.RELEASE.pom
21:36:51.957 [Worker-2] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/spring-beans/4.3.8.RELEASE/spring-beans-4.3.8.RELEASE.pom
21:36:51.988 [Worker-2] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/spring-beans/4.3.8.RELEASE/spring-beans-4.3.8.RELEASE.pom
21:36:52.003 [Worker-2] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/spring-core/4.3.8.RELEASE/spring-core-4.3.8.RELEASE.pom
21:36:52.550 [Worker-2] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/spring-core/4.3.8.RELEASE/spring-core-4.3.8.RELEASE.pom
21:36:52.582 [Worker-2] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/commons-logging/commons-logging/1.2/commons-logging-1.2.pom
21:36:52.613 [Worker-2] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/commons-logging/commons-logging/1.2/commons-logging-1.2.pom
21:36:52.644 [Worker-2] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/spring-context/4.3.8.RELEASE/spring-context-4.3.8.RELEASE.pom
21:36:52.660 [Worker-2] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/spring-context/4.3.8.RELEASE/spring-context-4.3.8.RELEASE.pom
21:36:52.675 [Worker-2] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/spring-expression/4.3.8.RELEASE/spring-expression-4.3.8.RELEASE.pom
21:36:52.691 [Worker-2] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/spring-expression/4.3.8.RELEASE/spring-expression-4.3.8.RELEASE.pom
21:36:52.738 [Worker-2] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/spring-web/4.3.8.RELEASE/spring-web-4.3.8.RELEASE.jar
21:36:53.144 [Worker-2] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/spring-web/4.3.8.RELEASE/spring-web-4.3.8.RELEASE.jar
21:36:53.175 [Worker-2] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/spring-aop/4.3.8.RELEASE/spring-aop-4.3.8.RELEASE.jar
21:36:53.207 [Worker-2] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/spring-aop/4.3.8.RELEASE/spring-aop-4.3.8.RELEASE.jar
21:36:53.222 [Worker-2] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/spring-beans/4.3.8.RELEASE/spring-beans-4.3.8.RELEASE.jar
21:36:53.316 [Worker-2] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/spring-beans/4.3.8.RELEASE/spring-beans-4.3.8.RELEASE.jar
21:36:53.332 [Worker-2] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/spring-context/4.3.8.RELEASE/spring-context-4.3.8.RELEASE.jar
21:36:53.410 [Worker-2] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/spring-context/4.3.8.RELEASE/spring-context-4.3.8.RELEASE.jar
21:36:53.425 [Worker-2] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/spring-expression/4.3.8.RELEASE/spring-expression-4.3.8.RELEASE.jar
21:36:53.457 [Worker-2] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/spring-expression/4.3.8.RELEASE/spring-expression-4.3.8.RELEASE.jar
21:36:53.472 [Worker-2] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/spring-core/4.3.8.RELEASE/spring-core-4.3.8.RELEASE.jar
21:36:53.566 [Worker-2] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/spring-core/4.3.8.RELEASE/spring-core-4.3.8.RELEASE.jar
21:36:53.582 [Worker-2] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/commons-logging/commons-logging/1.2/commons-logging-1.2.jar
21:36:53.597 [Worker-2] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/commons-logging/commons-logging/1.2/commons-logging-1.2.jar
21:36:56.207 [Worker-2] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered resources.
21:36:56.207 [Worker-2] INFO o.e.m.c.i.embedder.EclipseLogger - skip non existing resourceDirectory T:\src\github\google-cloud-eclipse\plugins\com.google.cloud.tools.eclipse.integration.appengine\target\work\data\web-fragment-example\src\main\resources
21:36:56.207 [Worker-2] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered resources.
21:36:56.207 [Worker-2] INFO o.e.m.c.i.embedder.EclipseLogger - skip non existing resourceDirectory T:\src\github\google-cloud-eclipse\plugins\com.google.cloud.tools.eclipse.integration.appengine\target\work\data\web-fragment-example\src\test\resources
21:36:57.133 [Worker-7] INFO o.e.m.c.i.l.LifecycleMappingFactory - Using org.maven.ide.eclipse.wtp.WarLifecycleMapping lifecycle mapping for MavenProject: com.example:web-fragment-example:0.1.0-SNAPSHOT @ T:\src\github\google-cloud-eclipse\plugins\com.google.cloud.tools.eclipse.integration.appengine\target\work\data\web-fragment-example\pom.xml.
ProjectUtils#waitForProjects[12.73 s]: waiting for 2 jobs: [J2EE Component Mapping Update(158), Building workspace(4)]
21:36:58.352 [Worker-3] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered resources.
21:36:58.352 [Worker-3] INFO o.e.m.c.i.embedder.EclipseLogger - skip non existing resourceDirectory T:\src\github\google-cloud-eclipse\plugins\com.google.cloud.tools.eclipse.integration.appengine\target\work\data\web-fragment-example\src\main\resources
21:36:58.352 [Worker-3] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered resources.
21:36:58.352 [Worker-3] INFO o.e.m.c.i.embedder.EclipseLogger - skip non existing resourceDirectory T:\src\github\google-cloud-eclipse\plugins\com.google.cloud.tools.eclipse.integration.appengine\target\work\data\web-fragment-example\src\test\resources
ProjectUtils#waitForProjects[13.29 s]: waiting for 1 jobs: [Building workspace(4)]
ProjectUtils#waitForProjects[13.29 s]: waiting for 1 build errors
ProjectUtils#waitForProjects[14.42 s]: waiting for 1 jobs: [Validating web-fragment-example(164)]
ProjectUtils#waitForProjects[14.42 s]: waiting for 1 jobs: [Building workspace(4)]
Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 20.722 sec - in com.google.cloud.tools.eclipse.integration.appengine.WebFragmentWarPublishTest
testPublishWar_webFragmentJarPublished(com.google.cloud.tools.eclipse.integration.appengine.WebFragmentWarPublishTest) Time elapsed: 1.018 sec
testPublishExploded_webFragmentJarPublished(com.google.cloud.tools.eclipse.integration.appengine.WebFragmentWarPublishTest) Time elapsed: 0.069 sec
Looking good. Awesome!
I saw this on Kokoro today. This time there wasn't evidence of corruption, but the log shows that two workers downloaded one artifact: spring-boot-dependencies-1.5.6.RELEASE.pom
. Very weird that this was the only artifact with two workers. Seems like a very rare event indeed. I'm fear of a Heisenbug.
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 13.033 sec - in com.google.cloud.tools.eclipse.integration.appengine.ImportMavenAppEngineStandardProjectTest
runImport(com.google.cloud.tools.eclipse.integration.appengine.ImportMavenAppEngineStandardProjectTest) Time elapsed: 13.018 sec
Running com.google.cloud.tools.eclipse.integration.appengine.FlexMavenPackagedProjectStagingDelegateTest
Importing 1 projects:
T:/src/github/google-cloud-eclipse/plugins/com.google.cloud.tools.eclipse.integration.appengine/target/work/data/spring-boot-test/.project
15:22:19.559 [Worker-0] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.spring.io/libs-release/org/springframework/boot/spring-boot-starter-parent/1.5.6.RELEASE/spring-boot-starter-parent-1.5.6.RELEASE.pom
15:22:19.606 [Worker-0] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.spring.io/libs-release/org/springframework/boot/spring-boot-starter-parent/1.5.6.RELEASE/spring-boot-starter-parent-1.5.6.RELEASE.pom
15:22:19.653 [Worker-0] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.spring.io/libs-release/org/springframework/boot/spring-boot-dependencies/1.5.6.RELEASE/spring-boot-dependencies-1.5.6.RELEASE.pom
15:22:19.794 [Worker-0] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.spring.io/libs-release/org/springframework/boot/spring-boot-dependencies/1.5.6.RELEASE/spring-boot-dependencies-1.5.6.RELEASE.pom
15:22:19.810 [Worker-5] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.spring.io/libs-release/org/springframework/boot/spring-boot-dependencies/1.5.6.RELEASE/spring-boot-dependencies-1.5.6.RELEASE.pom
15:22:19.888 [Worker-0] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.spring.io/libs-release/com/fasterxml/jackson/jackson-bom/2.8.9/jackson-bom-2.8.9.pom
15:22:19.935 [Worker-0] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.spring.io/libs-release/com/fasterxml/jackson/jackson-bom/2.8.9/jackson-bom-2.8.9.pom
15:22:19.951 [Worker-5] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.spring.io/libs-release/org/springframework/boot/spring-boot-dependencies/1.5.6.RELEASE/spring-boot-dependencies-1.5.6.RELEASE.pom
15:22:20.013 [Worker-0] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.spring.io/libs-release/org/springframework/spring-framework-bom/4.3.10.RELEASE/spring-framework-bom-4.3.10.RELEASE.pom
15:22:20.060 [Worker-0] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.spring.io/libs-release/org/springframework/spring-framework-bom/4.3.10.RELEASE/spring-framework-bom-4.3.10.RELEASE.pom
15:22:20.123 [Worker-0] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.spring.io/libs-release/org/springframework/data/spring-data-releasetrain/Ingalls-SR6/spring-data-releasetrain-Ingalls-SR6.pom
15:22:20.169 [Worker-0] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.spring.io/libs-release/org/springframework/data/spring-data-releasetrain/Ingalls-SR6/spring-data-releasetrain-Ingalls-SR6.pom
15:22:20.216 [Worker-0] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.spring.io/libs-release/org/springframework/data/build/spring-data-build/1.9.6.RELEASE/spring-data-build-1.9.6.RELEASE.pom
15:22:20.310 [Worker-0] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.spring.io/libs-release/org/springframework/data/build/spring-data-build/1.9.6.RELEASE/spring-data-build-1.9.6.RELEASE.pom
15:22:20.357 [Worker-0] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.spring.io/libs-release/org/springframework/integration/spring-integration-bom/4.3.11.RELEASE/spring-integration-bom-4.3.11.RELEASE.pom
15:22:20.404 [Worker-0] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.spring.io/libs-release/org/springframework/integration/spring-integration-bom/4.3.11.RELEASE/spring-integration-bom-4.3.11.RELEASE.pom
15:22:20.451 [Worker-0] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.spring.io/libs-release/org/springframework/security/spring-security-bom/4.2.3.RELEASE/spring-security-bom-4.2.3.RELEASE.pom
15:22:20.498 [Worker-0] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.spring.io/libs-release/org/springframework/security/spring-security-bom/4.2.3.RELEASE/spring-security-bom-4.2.3.RELEASE.pom
15:22:20.513 [Worker-0] WARN o.e.m.c.i.embedder.EclipseLogger - Failed to build parent project for com.example:spring-boot-test-project:jar:0.1.0
15:22:22.076 [WorkbenchTestable] INFO o.e.m.i.launch.MavenLaunchDelegate - T:\src\github\google-cloud-eclipse\plugins\com.google.cloud.tools.eclipse.integration.appengine\target\work\data\spring-boot-test
15:22:22.076 [WorkbenchTestable] INFO o.e.m.i.launch.MavenLaunchDelegate - mvn -B package
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 6.263 sec <<< FAILURE! - in com.google.cloud.tools.eclipse.integration.appengine.FlexMavenPackagedProjectStagingDelegateTest
testStage_springBoot(com.google.cloud.tools.eclipse.integration.appengine.FlexMavenPackagedProjectStagingDelegateTest) Time elapsed: 6.248 sec <<< ERROR!
org.eclipse.core.runtime.OperationCanceledException: null
at com.google.cloud.tools.eclipse.appengine.deploy.flex.FlexMavenPackagedProjectStagingDelegate.getDeployArtifact(FlexMavenPackagedProjectStagingDelegate.java:156)
at com.google.cloud.tools.eclipse.appengine.deploy.flex.FlexStagingDelegate.stage(FlexStagingDelegate.java:60)
at com.google.cloud.tools.eclipse.appengine.deploy.flex.FlexMavenPackagedProjectStagingDelegate.stage(FlexMavenPackagedProjectStagingDelegate.java:1)
at com.google.cloud.tools.eclipse.integration.appengine.FlexMavenPackagedProjectStagingDelegateTest.testStage_springBoot(FlexMavenPackagedProjectStagingDelegateTest.java:54)
In looking at Eclipse bug 514691 I came across MNG-4706 whose opening description seems very applicable here:
Within a parallel build, modules A and B can start at the same time and decide at the same time that they need to download artifact X. Since X is not available locally, both can start download of X. Both will download X and both will try to write the file for X to disk. On Windows platforms, one of them can fail with file locking problems. On Unixes the contents of the written file can be non-deterministic.
There's a suggestion to set the following properties:
-Daether.connector.basic.threads=1
-Daether.connector.resumeDownloads=false
I'll push up a patch and let's see if I can get kokoro:run
to work for me.
On the latest kokoro build for #2660, I see the dreaded double-LifecycleMappingFactory
listeners with a host of doubly-downloaded dependencies:
Importing 1 projects:
T:/src/github/google-cloud-eclipse/plugins/com.google.cloud.tools.eclipse.integration.appengine/target/work/data/web-fragment-example/.project
19:17:49.852 [Worker-10] INFO o.e.m.c.i.l.LifecycleMappingFactory - Using org.maven.ide.eclipse.wtp.WarLifecycleMapping lifecycle mapping for MavenProject: com.example:web-fragment-example:0.1.0-SNAPSHOT @ T:\src\github\google-cloud-eclipse\plugins\com.google.cloud.tools.eclipse.integration.appengine\target\work\data\web-fragment-example\pom.xml.
19:17:49.915 [Worker-9] INFO o.e.m.c.i.l.LifecycleMappingFactory - Using org.maven.ide.eclipse.wtp.WarLifecycleMapping lifecycle mapping for MavenProject: com.example:web-fragment-example:0.1.0-SNAPSHOT @ T:\src\github\google-cloud-eclipse\plugins\com.google.cloud.tools.eclipse.integration.appengine\target\work\data\web-fragment-example\pom.xml.
19:17:51.446 [Worker-10] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/spring-web/4.3.8.RELEASE/spring-web-4.3.8.RELEASE.pom
19:17:51.446 [Worker-9] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/spring-web/4.3.8.RELEASE/spring-web-4.3.8.RELEASE.pom
19:17:51.493 [Worker-10] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/spring-web/4.3.8.RELEASE/spring-web-4.3.8.RELEASE.pom
19:17:51.524 [Worker-9] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/spring-web/4.3.8.RELEASE/spring-web-4.3.8.RELEASE.pom
…
I wonder if we can side-step this issue and have our building-maven instance download the spring libraries into the local Maven repository, so that the testing-maven instance has nothing to download.
@chanseokoh: I can also see artifacts downloaded twice locally, but there is only one worker.
I think these are log messages from two different tests. Still doesn't explain why they're downloaded twice … unless these are .pom
s downloaded by our ArtifactRetriever
.
So I fired up a Windows VM and put in some breakpoints and I think I've discovered the issue: we're seeing contention between M2Eclipse's resource-change-listener, which triggers a rebuild, and the Eclipse autobuilder, which invokes the Maven builder.
The M2Eclipse resource-change-listener, an ProjectRegistryRefreshJob
, is installed on startup by the MavenPluginActivator#start()
:
this.mavenBackgroundJob = new ProjectRegistryRefreshJob(managerImpl, mavenConfiguration);
IWorkspace workspace = ResourcesPlugin.getWorkspace();
workspace.addResourceChangeListener(mavenBackgroundJob, IResourceChangeEvent.POST_CHANGE
| IResourceChangeEvent.PRE_CLOSE | IResourceChangeEvent.PRE_DELETE);
The auto-builder, which seems to happen first:
Thread [Worker-0] (Suspended (entry into method calculateLifecycleMapping in LifecycleMappingFactory))
LifecycleMappingFactory.calculateLifecycleMapping(MavenProject, List<MojoExecution>, String, IProgressMonitor) line: 169
ProjectRegistryManager.setupLifecycleMapping(MutableProjectRegistry, IProgressMonitor, MavenProjectFacade) line: 593
ProjectRegistryManager.refreshPhase2(MutableProjectRegistry, DependencyResolutionContext, Map<IFile,Set<Capability>>, Map<IFile,Set<RequiredCapability>>, IFile, MavenProjectFacade, IProgressMonitor) line: 512
ProjectRegistryManager$3.call(IMavenExecutionContext, IProgressMonitor) line: 491
ProjectRegistryManager$3.call(IMavenExecutionContext, IProgressMonitor) line: 1
MavenExecutionContext.executeBare(MavenProject, ICallable<V>, IProgressMonitor) line: 176
MavenExecutionContext.execute(MavenProject, ICallable<V>, IProgressMonitor) line: 151
ProjectRegistryManager.refresh(MutableProjectRegistry, DependencyResolutionContext, IProgressMonitor) line: 495
ProjectRegistryManager.refresh(MutableProjectRegistry, Collection<IFile>, IProgressMonitor) line: 350
ProjectRegistryManager.refresh(Collection<IFile>, IProgressMonitor) line: 297
MavenBuilder$1(MavenBuilder$BuildMethod<T>).getProjectFacade(IProject, IProgressMonitor) line: 154
MavenBuilder$BuildMethod$1.call(IMavenExecutionContext, IProgressMonitor) line: 89
MavenExecutionContext.executeBare(MavenProject, ICallable<V>, IProgressMonitor) line: 176
MavenExecutionContext.execute(MavenProject, ICallable<V>, IProgressMonitor) line: 151
MavenExecutionContext.execute(ICallable<V>, IProgressMonitor) line: 99
MavenBuilder$1(MavenBuilder$BuildMethod<T>).execute(int, Map<String,String>, IProgressMonitor) line: 86
MavenBuilder.build(int, Map<String,String>, IProgressMonitor) line: 200
BuildManager$2.run() line: 734
SafeRunner.run(ISafeRunnable) line: 42
BuildManager.basicBuild(int, IncrementalProjectBuilder, Map<String,String>, MultiStatus, IProgressMonitor) line: 205
BuildManager.basicBuild(IBuildConfiguration, int, IBuildContext, ICommand[], MultiStatus, IProgressMonitor) line: 245
BuildManager$1.run() line: 300
SafeRunner.run(ISafeRunnable) line: 42
BuildManager.basicBuild(IBuildConfiguration, int, IBuildContext, MultiStatus, IProgressMonitor) line: 303
BuildManager.basicBuildLoop(IBuildConfiguration[], IBuildConfiguration[], int, MultiStatus, IProgressMonitor) line: 359
BuildManager.build(IBuildConfiguration[], IBuildConfiguration[], int, IProgressMonitor) line: 382
AutoBuildJob.doBuild(IProgressMonitor) line: 144
AutoBuildJob.run(IProgressMonitor) line: 235
Worker.run() line: 55
The resource-change-listener:
Thread [Worker-9] (Suspended (entry into method calculateLifecycleMapping in LifecycleMappingFactory))
LifecycleMappingFactory.calculateLifecycleMapping(MavenProject, List<MojoExecution>, String, IProgressMonitor) line: 169
ProjectRegistryManager.setupLifecycleMapping(MutableProjectRegistry, IProgressMonitor, MavenProjectFacade) line: 593
ProjectRegistryManager.refreshPhase2(MutableProjectRegistry, DependencyResolutionContext, Map<IFile,Set<Capability>>, Map<IFile,Set<RequiredCapability>>, IFile, MavenProjectFacade, IProgressMonitor) line: 512
ProjectRegistryManager$3.call(IMavenExecutionContext, IProgressMonitor) line: 491
ProjectRegistryManager$3.call(IMavenExecutionContext, IProgressMonitor) line: 1
MavenExecutionContext.executeBare(MavenProject, ICallable<V>, IProgressMonitor) line: 176
MavenExecutionContext.execute(MavenProject, ICallable<V>, IProgressMonitor) line: 151
ProjectRegistryManager.refresh(MutableProjectRegistry, DependencyResolutionContext, IProgressMonitor) line: 495
ProjectRegistryManager.refresh(MutableProjectRegistry, Collection<IFile>, IProgressMonitor) line: 350
ProjectRegistryRefreshJob$1$1.call(IMavenExecutionContext, IProgressMonitor) line: 89
ProjectRegistryRefreshJob$1$1.call(IMavenExecutionContext, IProgressMonitor) line: 1
MavenExecutionContext.executeBare(MavenProject, ICallable<V>, IProgressMonitor) line: 176
MavenExecutionContext.execute(MavenProject, ICallable<V>, IProgressMonitor) line: 151
MavenExecutionContext.execute(ICallable<V>, IProgressMonitor) line: 99
MavenImpl.execute(boolean, boolean, ICallable<V>, IProgressMonitor) line: 1351
ProjectRegistryRefreshJob$1.call(IMavenExecutionContext, IProgressMonitor) line: 87
ProjectRegistryRefreshJob$1.call(IMavenExecutionContext, IProgressMonitor) line: 1
MavenExecutionContext.executeBare(MavenProject, ICallable<V>, IProgressMonitor) line: 176
MavenExecutionContext.execute(MavenProject, ICallable<V>, IProgressMonitor) line: 151
MavenExecutionContext.execute(ICallable<V>, IProgressMonitor) line: 99
MavenImpl.execute(ICallable<V>, IProgressMonitor) line: 1355
ProjectRegistryRefreshJob.run(IProgressMonitor) line: 81
Worker.run() line: 55
I wondered if this happens only on Mars, but I believe Kokoro runs against Oxygen.
Hmm... maven-jar-plugin
, the very basic plugin, from repo.spring.io/lib-releases
. This repo is additionally defined in the spring-boot-test.zip
project. I think pre-downloading org.springframework.boot:spring-boot-maven-plugin
could help.
15:12:13.888 [Worker-8] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.spring.io/libs-release/org/apache/maven/plugins/maven-jar-plugin/2.6/maven-jar-plugin-2.6.jar
15:12:13.982 [Worker-8] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.spring.io/libs-release/org/apache/maven/plugins/maven-jar-plugin/2.6/maven-jar-plugin-2.6.jar
15:12:14.013 [Worker-3] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.spring.io/libs-release/org/apache/maven/plugins/maven-jar-plugin/2.6/maven-jar-plugin-2.6.jar
15:12:14.044 [Worker-8] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.spring.io/libs-release/org/apache/maven/plugins/maven-install-plugin/2.5.2/maven-install-plugin-2.5.2.jar
15:12:14.138 [Worker-8] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.spring.io/libs-release/org/apache/maven/plugins/maven-install-plugin/2.5.2/maven-install-plugin-2.5.2.jar
15:12:14.294 [Worker-3] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.spring.io/libs-release/org/apache/maven/plugins/maven-jar-plugin/2.6/maven-jar-plugin-2.6.jar
[INFO] Failed to parse Maven artifact C:\Users\builder\.m2\repository\org\apache\maven\plugins\maven-jar-plugin\2.6\maven-jar-plugin-2.6.jar due to invalid END header (bad central directory offset)
Another future-proof automation idea I just came up with: on Kokoro, before starting a build, unzip all test-project/*.zip
and do mvn package
on each pom.xml
. This will ensure we start with all necessary dependencies pre-downloaded.
Maybe we should change spring-boot-test.zip
to not use repo.spring.io
. Seems odd to be downloading base maven plugins from a Spring repo!
Yeah, removed repo.spring.io
in #2683.
Closing this as #2683 should workaround these problems.
Description Resource Path Location Type Cannot read lifecycle mapping metadata for artifact org.apache.maven.plugins:maven-compiler-plugin:maven-plugin:3.1:runtime Cause: invalid END header (bad central directory offset) pom.xml /pages line 1 Maven Project Build Lifecycle Mapping Problem
I am facing this Issue when we do Maven Clean install.Someone please help us here.
@nagarjunaj11 check out these: https://stackoverflow.com/q/17815639/1701388 https://stackoverflow.com/q/40377924/1701388
This is the second time I saw the problem in the integration test. This will eventually end up manifesting as a test failure like below, mainly because we explicitly check any build errors by calling
ProjectUtils.failIfBuildErrors()
. Note that the actual problem starts to happen way earlier in a log, so be careful not to be misguided by the build error.This time the corruption was on
spring-core-4.3.8.RELEASE.jar
, but I remember the first incident was onspring-beans-4.3.8.RELEASE.jar
. A bit above this test failure isA bit more above that is
And a bit more above that is
What I found is that, unlike logs in other tests, there are two threads
[Worker-3]
and[Worker-7]
downloading artifacts concurrently, so each artifact is downloaded twice: