Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 339156

Summary: test builds hang for a long time
Product: [Technology] MPC Reporter: Steffen Pingel <steffen.pingel>
Component: InstallAssignee: Benjamin Muskalla <b.muskalla>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: P3    
Version: unspecified   
Target Milestone: 1.1   
Hardware: PC   
OS: Linux   
Whiteboard:
Attachments:
Description Flags
patch
none
mylyn/context/zip none

Description Steffen Pingel CLA 2011-03-07 21:59:56 EST
Do a "mvn clean install" and the build can stall for a looooong time after tests finish executing:

"Worker-0" prio=10 tid=0x000000004268b800 nid=0x45a2 in Object.wait() [0x00007fd670ad5000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0x00000000fcaed0d8> (a java.io.PipedInputStream)
        at java.io.PipedInputStream.awaitSpace(PipedInputStream.java:257)
        at java.io.PipedInputStream.receive(PipedInputStream.java:215)
        - locked <0x00000000fcaed0d8> (a java.io.PipedInputStream)
        at java.io.PipedOutputStream.write(PipedOutputStream.java:132)
        at org.eclipse.ecf.provider.filetransfer.retrieve.AbstractRetrieveFileTransfer.handleReceivedData(AbstractRetrieveFileTransfer.java:284)
        - locked <0x00000000fcaedd98> (a org.eclipse.ecf.provider.filetransfer.httpclient.HttpClientRetrieveFileTransfer)
        at org.eclipse.ecf.provider.filetransfer.retrieve.AbstractRetrieveFileTransfer$1.performFileTransfer(AbstractRetrieveFileTransfer.java:173)
        at org.eclipse.ecf.filetransfer.FileTransferJob.run(FileTransferJob.java:74)
        at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)


"main" prio=10 tid=0x000000004128d800 nid=0x453a waiting for monitor entry [0x00007fd677388000]
   java.lang.Thread.State: BLOCKED (on object monitor)
        at org.eclipse.ecf.provider.filetransfer.httpclient.HttpClientRetrieveFileTransfer.cancel(HttpClientRetrieveFileTransfer.java:346)
        - waiting to lock <0x00000000fcaedd98> (a org.eclipse.ecf.provider.filetransfer.httpclient.HttpClientRetrieveFileTransfer)
        at org.eclipse.ecf.filetransfer.FileTransferJob.canceling(FileTransferJob.java:81)
        at org.eclipse.core.internal.jobs.JobManager.cancel(JobManager.java:320)
        at org.eclipse.core.internal.jobs.JobManager.doShutdown(JobManager.java:567)
        at org.eclipse.core.internal.jobs.JobManager.shutdown(JobManager.java:252)
        at org.eclipse.core.internal.jobs.JobActivator.stop(JobActivator.java:55)
        at org.eclipse.osgi.framework.internal.core.BundleContextImpl$2.run(BundleContextImpl.java:771)
        at java.security.AccessController.doPrivileged(Native Method)
        at org.eclipse.osgi.framework.internal.core.BundleContextImpl.stop(BundleContextImpl.java:764)
        at org.eclipse.osgi.framework.internal.core.BundleHost.stopWorker(BundleHost.java:509)
        at org.eclipse.osgi.framework.internal.core.AbstractBundle.suspend(AbstractBundle.java:566)
        at org.eclipse.osgi.framework.internal.core.Framework.suspendBundle(Framework.java:1160)
        at org.eclipse.osgi.framework.internal.core.StartLevelManager.decFWSL(StartLevelManager.java:595)
        at org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(StartLevelManager.java:257)
        - locked <0x00000000f05a6ac8> (a java.lang.Object)
        at org.eclipse.osgi.framework.internal.core.StartLevelManager.shutdown(StartLevelManager.java:215)
        at org.eclipse.osgi.framework.internal.core.InternalSystemBundle.suspend(InternalSystemBundle.java:284)
        at org.eclipse.osgi.framework.internal.core.Framework.shutdown(Framework.java:690)
        - locked <0x00000000f0493728> (a org.eclipse.osgi.framework.internal.core.Framework)
        at org.eclipse.osgi.framework.internal.core.Framework.close(Framework.java:597)
        - locked <0x00000000f0493728> (a org.eclipse.osgi.framework.internal.core.Framework)
        at org.eclipse.core.runtime.adaptor.EclipseStarter.shutdown(EclipseStarter.java:390)
        at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:198)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622)
        at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577)
        at org.eclipse.equinox.launcher.Main.run(Main.java:1410)
        at org.eclipse.equinox.launcher.Main.main(Main.java:1386)
Comment 1 Steffen Pingel CLA 2011-03-16 14:14:01 EDT
Benjamin, have you had a chance to look into this? It hangs the release build every time.
Comment 2 Benjamin Muskalla CLA 2011-03-16 17:19:17 EDT
I'm able to reproduce it but didn't had a chance/idea yet how to fix.
Comment 3 Benjamin Muskalla CLA 2011-04-20 15:50:44 EDT
Created attachment 193749 [details]
patch

Forgotten stream :)

Steffen, I suggest to add findbugs for the the tests bundle too.
Comment 4 Benjamin Muskalla CLA 2011-04-20 15:50:47 EDT
Created attachment 193750 [details]
mylyn/context/zip
Comment 5 Steffen Pingel CLA 2011-04-20 16:34:47 EDT
Interesting. The problems with tests is that FindBugs tends to yield a large number of false positives but certainly makes sense in this case.
Comment 6 Benjamin Muskalla CLA 2011-04-20 18:50:44 EDT
Pushed to master, build time reduced by 50%. Still wondering why the build takes ~15mins compared to 4mins on my local machine. Steffen, is the eclipse.org hudson always that slow or do you still see opportunities for improvement?
Comment 7 Steffen Pingel CLA 2011-04-20 19:52:36 EDT
According to https://hudson.eclipse.org/hudson/job/epp-mpc-e3.6/32/  the last build took 2min? The release build signs bundles and such which takes a bit longer.
Comment 8 Benjamin Muskalla CLA 2011-04-21 12:34:29 EDT
Yes, makes sense. Watched the build time of the release job as it runs the tests.
Think we're good here!