More observations:
I've tried this today with my Windows and it seems that there is a big
difference between maxParallelForks 3 and 4. The test consistently passes
with 3 is lower value on my VMWare box with 6GB RAM and 2 CPUs. It also
consistently fails with maxParallelForks=4. I know that our Windows
machines and much better hardware but it seems that especially
:launcher:integTest starts a lot of processes and probably hits some I/O
threshold where things get noticeably slower. Reducing the throughput at
this level seems better/more reliable to me than increasing various
timeouts.

My suggestion is to reduce maxParallelForks to 3. Possibly we can do it
only for :launcher (and perhaps :toolingApi) where we have these tests that
run multiple child processes per test. Other subprojects can live with
current settings at the moment. Opinions?

-Radim


On Sun, Jul 20, 2014 at 9:29 PM, Radim Kubacki <radim.kuba...@gradleware.com
> wrote:

> We have a few tests that are failing sporadically due to some timeouts:
> ToolingApiLoggingCrossVersionSpec."logging is live" is one of them.
> CancellingDaemonIntegrationSpec."cancels correct build" seem to fall into
> this category too.
>
> They fail more often on our Windows CI box and the failure are usual when
> there is higher CPU load. I added debug logging to see where the time is
> spent and here are some numbers (based on
> http://builds.gradle.org/viewLog.html?buildId=112016&tab=buildResultsDiv&buildTypeId=Gradle_Master_Coverage_WindowsJava18#testNameId1103271250747874825
> )
>
> Output starts at 22:05:08.897 and there will be some time before to spawn
> the process.
> Daemon setup ends at with '22:05:10.892 [INFO] [
> org.gradle.launcher.daemon.server.exec.ExecuteBuild] Executing build with
> daemon context...'
> Then there is a gap 1.5s before '22:05:12.333 [INFO]
> [org.gradle.BuildLogger] Starting Build'
>
> Next chunk is '22:05:13.051 [DEBUG]
> [org.gradle.initialization.ScriptEvaluatingSettingsProcessor] Timing:
> Processing settings took: 0.669 secs'
>
> Another 1+s to get lock and write build script to a cache - 22:05:14.344
> [DEBUG]
> [org.gradle.groovy.scripts.internal.DefaultScriptCompilationHandler]
> Timing: Writing script to cache at
> C:\tcagent2\work\2d33fa4c6d642769\intTestHomeDir\worker-1\caches\2.1-20140719192339+0000\scripts\build_td6v684jmvp2dj2md0b4vs8dr\ProjectScript\buildscript\classes
> took: 0.48 secs
>
> 3.5s to compile the build script is a biggest part - 22:05:17.864 [DEBUG]
> [org.gradle.groovy.scripts.internal.DefaultScriptCompilationHandler]
> Timing: Writing script to cache at
> C:\tcagent2\work\2d33fa4c6d642769\intTestHomeDir\worker-1\caches\2.1-20140719192339+0000\scripts\build_td6v684jmvp2dj2md0b4vs8dr\ProjectScript\no_buildscript\classes
> took: 3.482 secs
>
> Task is executed soon after (22:05:18.253 [DEBUG]
> [org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter]
> Executing actions for task ':t1'.) but it is too late for the test that has
> 10secs timeout to read output from the test.
>
> My questions:
> Can we make the test faster? Like adding empty settings.gradle? Can we
> speed up script compilation? Do we know what is happening before
> '[org.gradle.BuildLogger] Starting Build'?
>
> Of course I can increase the timeout but before that I'd like to see why
> it is not sufficient in some cases.
>
> -Radim
>
>
>
>

Reply via email to