Clone Tools
  • last updated a few seconds ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
Use 'implementation' dependencies everywhere

  1. … 286 more files in changeset.
Use 'implementation' dependencies everywhere

  1. … 283 more files in changeset.
Use 'implementation' dependencies everywhere

  1. … 286 more files in changeset.
Use 'implementation' dependencies everywhere

  1. … 284 more files in changeset.
Use 'implementation' dependencies everywhere

  1. … 285 more files in changeset.
Use 'implementation' dependencies everywhere

  1. … 285 more files in changeset.
Rename `HashFunction` methods hinting at object allocation

  1. … 4 more files in changeset.
Rename `HashFunction` methods hinting at object allocation

  1. … 4 more files in changeset.
Rename `HashFunction` methods hinting at object allocation

  1. … 4 more files in changeset.
Revert "Merge pull request #7838 from gradle/eskatos/messaging/bind-loopback-if-available"

Listening to the loopback device seems to cause some connection issues

to the daemon from IDEA. Reverting the change for now.

This reverts commit 9a940b21ee06ed0b5c83b7d88f7d191a0d7a590e, reversing

changes made to 18b1f6e10f32f623986868bb39e083b49467b16e.

  1. … 6 more files in changeset.
Polish `DefaultCacheKeyBuilderTest`

- Dedupe test expectation

Prefer loopback bind address if available for IPC

Keep file lock communicator bound to wildcard address

Signed-off-by: Paul Merlin <paul@gradle.com>

  1. … 6 more files in changeset.
Prefer loopback bind address if available for IPC

Keep file lock communicator bound to wildcard address

Signed-off-by: Paul Merlin <paul@gradle.com>

  1. … 6 more files in changeset.
Prefer loopback bind address if available for IPC

Keep file lock communicator bound to wildcard address

Signed-off-by: Paul Merlin <paul@gradle.com>

  1. … 6 more files in changeset.
Move in-memory caches to persistent-cache project

    • -0
    • +203
    ./gradle/cache/internal/InMemoryCacheDecoratorFactoryTest.groovy
    • -0
    • +195
    ./gradle/cache/internal/InMemoryDecoratedCacheTest.groovy
    • -0
    • +47
    ./gradle/cache/internal/LoggingEvictionListenerTest.groovy
  1. … 48 more files in changeset.
Simplify TaskHistoryStore API

Replaced two similar methods with one, and made PersistentIndexedCacheParameters immutable and nicer to instantiate.

  1. … 21 more files in changeset.
Remove --recompile-scripts option

The corresponding `StartParameter` property is now deprecated.

Resolves #6306.

    • -36
    • +11
    ./gradle/cache/internal/DefaultPersistentDirectoryCacheTest.groovy
  1. … 21 more files in changeset.
Remove --recompile-scripts option

The corresponding `StartParameter` property is now deprecated.

Resolves #6306.

    • -36
    • +11
    ./gradle/cache/internal/DefaultPersistentDirectoryCacheTest.groovy
  1. … 21 more files in changeset.
Fix DefaultCacheAccessTest

Merge pull request #6150 from gradle/marc/fixes/1412-contention-handling-improvements

Improve file lock contention handling

Handle missing type correctly

When communicating with an old version, the length of the received

packet will be shorter than the byte array. Now, `FileLockPacketPayload`

only reads the type when it has been received and returns UNKNOWN if it

has not. Previously, it would have worked by accident because the last

byte was zero which corresponds to the ordinal number of UNKNOWN.

  1. … 2 more files in changeset.
Make file lock packet type explicit

`FileLockCommunicator` now includes an additional byte that represents

the `FileLockPacketType` when sending packets to other processes.

`DefaultFileLockContentionHandler` now checks for the

`LOCK_RELEASE_CONFIRMATION` type instead of interpreting any packet for

a lock for which it already has received a packet as a lock release

confirmation.

Adding the additional byte will be ignored by old versions which only

read the first 9 bytes. New versions can still read packets from old

versions that do not include the byte. They use the `UNKNOWN` type in

this case. Thus, this protocol change is backwards compatible.

  1. … 4 more files in changeset.
Ensure file lock is released before cache cleanup

Caches with on-demand locking keep hold of file locks unless contended

by other Gradle processes. Prior to this commit, such previously

acquired file locks were held for the complete duration of cache

cleanup only to be released immediately afterwards. While cache cleanup

was running, requests to release such file locks from other processes

(via `DefaultFileLockContentionHandler`) were not processed because the

`stateLock` of `DefaultCacheAccess` was already locked by another

thread and thus, the `ContentionAction` in

`LockOnDemandCrossProcessCacheAccess` was blocked until the `close()`

method in `DefaultCacheAccess` was finished.

Since cache cleanup only deletes files that are no longer in use, it

does not use file locking (which would not work anyway because the

current cache access infrastructure is not usable while the cache is

already being closed). Thus, this commit closes the

`CrossProcessCacheAccess` of the `DefaultCacheAccess` *before* cleaning

up caches.

Issue: gradle/gradle-private#1412

  1. … 1 more file in changeset.
Improve file lock contention handling

This commit improves the likelihood for lock requesters to acquire a

file lock after it is released due to contention. After the lock has

been released, the former lock holder now sends a packet to the sockets

of all requesters. While old clients will simply ignore the additional

packet, new clients will interpret it as a signal that the file lock has

been released and will try to acquire it immediately.

Issue: gradle/gradle-private#1412.

    • -0
    • +74
    ./gradle/cache/internal/DefaultFileLockManagerAwaitableFileLockReleasedSignalTest.groovy
    • -35
    • +56
    ./gradle/cache/internal/LockOnDemandCrossProcessCacheAccessTest.groovy
  1. … 10 more files in changeset.
Report deleted and skipped cache entries

This commit introduces `CleanupProgressMonitor` and a default

`ProgressLogger`-based implementation that tracks the total number of

deleted and skipped cache entries. `CleanupAction.clean()` now takes a

monitor as an additional argument. `DefaultPersistentDirectoryStore`

creates the default implementation and passes it to its `CleanupAction`.

    • -0
    • +58
    ./gradle/cache/internal/DefaultCleanupProgressMonitorTest.groovy
  1. … 10 more files in changeset.
Use ProgressLogger so cache cleanup is visible

    • -12
    • +14
    ./gradle/cache/internal/DefaultPersistentDirectoryCacheTest.groovy
    • -1
    • +2
    ./gradle/cache/internal/DefaultPersistentDirectoryStoreConcurrencyTest.groovy
  1. … 7 more files in changeset.
Make cache cleanup non-incremental

  1. … 10 more files in changeset.
Avoid reinitializing DefaultPersistentDirectoryStores

Prior to this commit, adding a `CleanupAction` when building a

`PersistentCache` using `CacheBuilder.withCleanup()` caused the used

implementation class to be changed from

`DefaultPersistentDirectoryStore` to `DefaultPersistentDirectoryCache`.

The latter adds initialization logic and has a very strict check in

place that verifies whether the lock file has been unlocked cleanly. If

not, it will delete all files in the cache in order to reinitialize it.

Since the mere addition of a cleanup action should not change such a

fundamental behavior, this commit moves the cleanup logic to the

`DefaultPersistentDirectoryStore` class and instantiates it when a

cleanup action is configured but no initialization related properties.

    • -1
    • +1
    ./gradle/cache/internal/DefaultPersistentDirectoryStoreConcurrencyTest.groovy
  1. … 4 more files in changeset.
Rename GradleVersionProvider to UsedGradleVersions

  1. … 11 more files in changeset.
Handle multi-component cache versions

- Let `UnusedVersionsCacheCleanup` handle cache versions with multiple

components, e.g. metadata-2.58.

- Introduce `CacheVersion` to handle formatting and parsing in one

place.

    • -0
    • +84
    ./gradle/cache/internal/CacheVersionTest.groovy
  1. … 10 more files in changeset.