Clone
 

lari hotari <lari.hotari@gradle.com> in Gradle

Workaround "peer not authenticated" problem on Travis CI (#10381)

- Travis builds for PRs have been failing with error message "peer not

authenticated"

- source of workaround:

https://github.com/bsideup/liiklus/blob/22efb7049ebcdd0dcf6f7f5735cdb5af1ae014de/.travis.yml#L9-L11

mentioned in https://github.com/jitpack/jitpack.io/issues/3581

Signed-off-by: Lari Hotari <lari@hotari.net>

Fix memory leak in DefaultDaemonScanInfo

- also unregister the listener that was listening for

the buildFinished event

Fixes #1730

Increase number of warmups for daemon tests

Call script to flush OS caches in performance tests

Disable output capturing in performance tests

- the output isn't inspected in performance tests and since capturing

could affect the measurements, it's better to simply not do it.

Extract OutputCapturer

Fix problem in GradleExecuterBackedSession.cleanup

- JVM options used for stopping contained a lot of duplicates

Increase number of warmups for daemon performance tests

- 14 warmups as default

- add custom limit in native perf test

Add JVM options to reduce malloc calls and native heap fragmentation

Fix flaky test by fixing the race condition that caused the NPE

Enable Class Data Sharing (cds) for non-daemon JVMs in perf tests

- Class Data Sharing requires that -Xshare:dump has been run after JVM

installation

- CDS is available on server JVM at least on Oracle Java 8

Use idle period in all perf tests to let JIT compiler queues drain

- idle period is needed to let JIT C1 and C2 queues to drain

- this is needed in all JVMs that are used in performance tests

daemon perf test has 3 JVMs that all affect measurements:

- performance test runner JVM + daemon client + daemon

non-daemon perf test has 2 JVMs that affect measurements:

- performance test runner JVM + non-daemon

Set JVM options for daemon client in performance tests

- optimize for stable results

Make OutputCapturer thread safe

- StreamByteBuffer isn't thread safe by design and concurrency must be

handled in OutputCapturer in this case

- Fixes continuous build integration tests failures

"java.lang.IllegalStateException: Unexpected state.

Buffer has remaining bytes without underflow in decoding."

Remove DurationMeasurement.fail and improve perf test error handling

- use the interface just for starting and stopping the measurement

- improve error handling in performance tests

Don't disable deprecation checks in performance tests

Retain java.io.tmpdir for performance tests

- In CI, the build has java.io.tmpdir set to TeamCity agent's

temp/buildTmp directory that gets cleaned up after the build

completes.

Make change to test that was missed in recent refactoring

- related to 5723c5a1

Rename "custom daemons" to "isolated daemons" in gradle executer

- used in integration tests

- concept originated from ebc93156

Fix native-dependents perf test

- force native-dependents perf test to build for 32-bit

- related to 32eb5850

Fix performance tests that use 3.2-rc-1 in base line versions

- those broken after 3.2-rc-2 got released because

all-released-versions.properties only includes "active" rcs

Disable deprecation checks in performance tests

- stacktraces will affect performance and that's not useful to measure

Tune performance test runner JVM args

- optimize for stable performance on the runner to minimize the impact

of measurement, monitoring and execution of the build on the

performance test results

Never disable reusing gradle user home services for perf tests

- this was causing differences in master vs. snapshot version

performance for some reason

Use StreamByteBuffer in ForkingGradleHandle for capturing output

- ByteArrayOutputStream causes a lot of GC pressure and is unefficient

- this could affect test results

Change performance test measurement to measure only the build execution

- any setup / teardown code in the executer is now ignored

Make it possible for the build context to configure GradleExecuter

Wire integration test build context instance

- enables using performance test specific build context when an instance

is properly wired

  1. … 34 more files in changeset.
Use unique temp dir for each performance test execution

- Create directory under java.io.tmpdir (assumed to be tmpfs on CI)

- Cleanup directory in execution session cleanup

Add feature for cleaning up temp dir after execution

- to be used for performance tests