Clone Tools
  • last updated a few seconds ago
Constraints: committers
Constraints: files
Constraints: dates
Adjust soak tests to account for change in GC monitoring

Unignore daemon metaspace soak test

Unignore daemon metaspace soak test

Unignore daemon metaspace soak test

Fix metaspace daemon soak test

Fix metaspace daemon soak test

Fix metaspace daemon soak test

Merge remote-tracking branch 'origin/sg/daemon/permgen' into release

* origin/sg/daemon/permgen:

Ignore permgen soak test

Add integration test that fails if Gradle does not understand the JVM's GC settings

Rework daemon GC/memory expiration checks

Ignore permgen soak test

Set initial heap size for classloader leak test

Set min heap for daemon soak tests

Rework daemon GC/memory expiration checks

- Do not sniff for VM vendor to figure out which GC strategies may be used

- Rename permgen -> non-heap in most places, Java 8+ uses metaspace for this memory pool

- Rename tenured -> heap

- Only add GarbageCollectionEvents to the observation window when there's been a GC collection

- This simplifies the calculation of GC rate

- Non-heap memory pools are not GC'd

- Re-enable daemon performance soak test

  1. … 25 more files in changeset.
Remove unnecessary experimental test

Increase max heap for tests on Windows

Fix named instantiator leaking memory

This commit reworks the named object instantiator so that it doesn't

leak memory, by locating the cache on the `VisibleURLClassLoader`

instance whenever possible. Previously, it retained strong references

to classes, meaning that any class loaded via a script classloader

would be strongly referenced and would prevent the loader from being

collected. With this change, the cache is now located on the loader


If, for some reason, the loader is not a known classloader, we will

still use a global cache, but this shouldn't leak memory anymore

since in this case it's likely the affected classes come from Gradle

core itself.

Fixes #8142

  1. … 2 more files in changeset.
Cleanup unused classloaders

Until now our classloader cache would only ever remove a classlaoder

if it was replaced by another one with the same ID. This works fine

if the daemon is used to build only one project. However, it becomes

a serious memory leak if the daemon builds many different projects.

This is a common scenario in Gradle integration tests, both in our

own code base and for users testing their plugins with TestKit.

In those cases the same daemon is used to build many different projects

and the JVM can eventually run out of metaspace.

This change adjusts the classloader cache so that it only retains

classloaders which were used either in the current build or the

previous build. All older unused classloaders are discarded to free

up memory.

  1. … 7 more files in changeset.
Migrate to Jetty 9

  1. … 20 more files in changeset.
Remove JDK 7 from DaemonPerformanceMonitoringCoverage

Model test fixtures as a propert artifact

Previously they were modeled as just a file collection,

which confused the IDEA importer. They now use the more

canonical way of defining an additional artifact.

In a next step they should be reimplemented using variant

aware dependency resolution, so that we don't need a special

DSL to declare these dependencies.

  1. … 14 more files in changeset.
Update Android Soak test to AGP 3.1.4

AGP < 3.1 is not supported any more by Gradle 5.0.

Update Android Soak test to AGP 3.1.4

AGP < 3.1 is not supported any more by Gradle 5.0.

Converted many Groovy script to Kotlin and improved the Kotlin DSL usage in some existing Kotlin scripts.

  1. … 94 more files in changeset.
Use external repository mirrors in build (#6094)

We've been bitten by external repository fluctuation for a long time.

This PR makes most of tests use repository mirrors set up by ourselves

via init script and system property.

There're still some tests not switching to mirrors, which would be fixed

in follow-up commits.

  1. … 98 more files in changeset.
Improve laziness of gradlebuild by using build scans

  1. … 16 more files in changeset.
Convert all remaining task creation to lazy configuration

  1. … 25 more files in changeset.
Fix concurrent issue in DependencyResolutionStressTest

This fixes

The root cause of this issue is that AbstractTestDirectoryProvider.getTestDirectory() is not thread-safe.

Under certain concurrent circumstances, AbstractTestDirectoryProvider.dir will be set multiple times.

The solution is simple: move AbstractTestDirectoryProvider.dir out of multi-thread environment.

Make some more shit lazy

  1. … 5 more files in changeset.
Dogfood JUnit Platform

  1. … 6 more files in changeset.
Use correct assertion method in int test.

Fix soak test for changes to log output.