Clone Tools
  • last updated a few seconds ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
Fix some lgtm alerts

  1. … 11 more files in changeset.
Apply `Merge identical catch branches` inspection the whole project

  1. … 15 more files in changeset.
Apply `Merge identical catch branches` inspection the whole project

  1. … 15 more files in changeset.
Move Stat and Chmod to :files

  1. … 38 more files in changeset.
Move Stat and Chmod to :files

  1. … 38 more files in changeset.
Make daemon log readable only to the user

  1. … 1 more file in changeset.
Run simulated tests against all garbage collectors

  1. … 5 more files in changeset.
Run simulated tests against all garbage collectors

    • -0
    • +39
    ./JavaGarbageCollector.groovy
  1. … 5 more files in changeset.
Worker daemons will stop themselves when daemon dies unexpectedly

  1. … 3 more files in changeset.
Allow starting daemon with lower priority

  1. … 23 more files in changeset.
Kill process tree on Windows

On Windows, we need to kill the whole process tree, otherwise the Gradle client

might hangs at waitForStop()

Use Spock's Retry extension instead of RetryRule

  1. … 27 more files in changeset.
Make DaemonLogAnalyzer faster

This class only needs the basic global services,

not the full set which is much more expensive.

This makes all daemon integration tests faster.

Strive to keep Gradle's monotonic clock in sync with the system clock

  1. … 71 more files in changeset.
Simplify time handling internally and for build scans (#2857)

* Don't make TimeProvider Serializable.

This isn't safe and generally doesn't make sense.

* Extract and promote the concept of a build timer.

This was previously not well defined and being overlaid with the concept of when a user/tool requested something, which is not always the same thing.

* Pare down the deprecated org.gradle.util.Clock down to the minimum required.

Internal usage is replaced by a `getStartTime()` directly on BuildRequestContext.

What is left is only kept for backwards compatibility with scans.

* Rename TimeProvider to Clock.

* Move BuildExecutionTimer out of baseServices into core, and into a better package.

* Remove unused.

* Simplify the time package by merging types.

* Prevent the client's build started timestamp from being later than when the provider received the build request.

* Provide a dedicated mechanism for conveying the build start time to build scans.

* Consolidate the ways of formatting durations.

  1. … 177 more files in changeset.
Exclude daemon logs of daemons that failed to establish a connection

This is a known issue that happens with some Java versions on Windows

(#1111). Those daemons were never active. So if we assert

the number of daemons used in a test, we want to exclude them.

  1. … 1 more file in changeset.
Improve error message for unexpected daemons

Add more context when failing test on too many daemons

There are a few tests that occasionally fail because more daemons

than expected were started. This will hopefully increase our chances

of finding the underlying problem.

Do not ignore tests when running wit daemon executer

The daemon executer is now the default for forked test execution. The

default should not skip any tests.

  1. … 3 more files in changeset.
Add null check for daemon context in Daemon test fixture

  1. … 1 more file in changeset.
Print daemon log to output if a TAPI test fails

This helps us to understand what is going on on the daemon side

in case of flaky connection issues.

  1. … 1 more file in changeset.
Do not run a daemon for testing retry rules

This may lead to additional issues if the daemon connection itself

suffers from one of the issues we want to test. Instead we simulate

the situation that triggers the retry rule by writing a log file

directly to the location the (isolated) daemon would write its log

file to.

  1. … 2 more files in changeset.
Use `Timers` in integTest projects

  1. … 1 more file in changeset.
Moved `Clock` and `TimeProvider` into a separate package

This commit reverts recent changes to the API of

`org.gradle.util.Clock`, and instead deprecates the existing type

replacing with a new internal type. This was done because the

`ExtractDslMetaDataTask` uses this type for timing, and external plugins may have copied this pattern.

`org.gradle.util.Clock` is now deprecated.

  1. … 103 more files in changeset.
Reinstate static imports that were mistakenly removed

Removed invalid field initializer

Add TimeProvider.currentTimeForDuration and use it

There were many places we were measuring a duration by comparing

`System.currentTimeMillis()` at some start and end times. This is a

known anti-pattern which is subject to incorrect duration measurements

due to how clock skew affects the implementation of that function.

The new `currentTimeForDuration()` method uses `System.nanoTime()` which

is much more reliable for measuring durations within a single thread of

control in a single process.

Replacing our uses of `System.currentTimeMillis()` with

`currentTimeForDuration()` will make Gradle and our tests much more

reliable.

In service of issue #740

  1. … 35 more files in changeset.
Removed a bunch of ad hoc cleanup for isolated deamons, now that this is handled more generally.

  1. … 6 more files in changeset.
Changed `GradleExecuter` implementations to ensure that any isolated daemons started during the test are killed at the end of the test, and that any services associated with a test specific user home dir are closed in any shared daemons that the test uses.

  1. … 5 more files in changeset.
Polishing of detach daemon from parent terminal story.

- Added some documentation to the integration tests to make it more clear why the tests are there.

- Updated DaemonClientFixture to be a little more clear

- Fixed some brokenness in ProcessEnvironment.maybeDetach()

+review REVIEW-6223

  1. … 6 more files in changeset.