Serialize Gradle runs that share the wolfskin-gradle cache volume #14

Closed
opened 2026-10-22 14:49:45 +02:00 by justinzeus · 0 comments
Owner

Found 2026-10-22 when five lanes built at once: make apk-debug failed twice with a timeout on the shared Gradle cache journal lock (/gradle/caches/journal-1, held by another process). Each make target runs Gradle in its own container on the shared wolfskin-gradle volume, and Gradle cannot ask a lock holder in another container to release, so concurrent builds time out instead of waiting.

Goal

docker/gradle.sh takes a host-side lock (e.g. flock on a file next to the volume name, overridable) around the docker run, so concurrent make targets queue instead of failing.

Acceptance

Two make apk-debug started together both succeed, one after the other; docker/README.md mentions the lock.

Found 2026-10-22 when five lanes built at once: `make apk-debug` failed twice with a timeout on the shared Gradle cache journal lock (`/gradle/caches/journal-1`, held by another process). Each `make` target runs Gradle in its own container on the shared `wolfskin-gradle` volume, and Gradle cannot ask a lock holder in another container to release, so concurrent builds time out instead of waiting. ## Goal `docker/gradle.sh` takes a host-side lock (e.g. `flock` on a file next to the volume name, overridable) around the `docker run`, so concurrent `make` targets queue instead of failing. ## Acceptance Two `make apk-debug` started together both succeed, one after the other; `docker/README.md` mentions the lock.
justinzeus added this to the Wolfskin replaces Wholphin on the TV milestone 2026-10-22 14:49:45 +02:00
Sign in to join this conversation.
No labels
exploring
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: justinzeus/wolfskin#14
No description provided.