Let multiple containers share downloaded dependencies
Hi!
Looks like Gradle is locking the global cache when running the tests. We run Gradle in Docker containers, and from what I saw in the logs, it fails to acquire the lock with:
14:09:05.981 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] The file lock is held by a different Gradle process (pid: 1, operation: ). Will attempt to ping owner at port 39422
Expected Behavior
Gradle should release the lock when it executes the tests. Other Gradle instances are failing with:
Timeout waiting to lock Plugin Resolution Cache (/root/.gradle/caches/3.2/plugin-resolution). It is currently in use by another Gradle instance.
Current Behavior
Gradle holds the lock
Context
Our CI servers are affected. Parallel builds are impossible.
Steps to Reproduce
I managed to reproduce it with a simple Docker-based environment:
https://github.com/bsideup/gradle-lock-bug
Docker and Docker Compose should be installed.
$ git clone git@github.com:bsideup/gradle-lock-bug.git
$ COMPOSE_HTTP_TIMEOUT=7200 docker-compose up --no-recreate
Your Environment
Gradle 3.2 (tried with 3.1, 3.0 and 2.12 as well)
Docker