Skip to content

Fix Google Maven proxy startup race in Copilot setup workflow - #22

Merged
XRDOGE-XRPL merged 5 commits into
copilot/behebe-dns-aufloesungsproblemfrom
copilot/fix-github-actions-job-another-one
Sep 13, 2026
Merged

XRDOGE-XRPL merged 5 commits into
copilot/behebe-dns-aufloesungsproblemfrom
copilot/fix-github-actions-job-another-one

Conversation

Copilot AI commented Sep 13, 2026

Copy link
Copy Markdown
Contributor

The failing Actions job was not caused by Gradle resolution itself; it failed earlier because the local Google Maven proxy did not become reachable within the readiness window. Proxy startup was blocked on synchronous donor index construction, so the health check could time out before the server ever bound its port.

  • Root cause

    • tools/google_maven_proxy.py built MavenMirrorIndex during process startup.
    • In cold-cache runs, donor archive/index work could exceed the workflow’s readiness timeout, causing the setup step to exit before Gradle started.
  • Behavior change

    • Start the HTTP server immediately and defer mirror index construction until the first artifact request.
    • Keep the root health endpoint responsive even when the backing index has not been built yet.
  • Concurrency and reconfiguration

    • Add generation-aware lazy initialization so concurrent first requests share one index build.
    • Avoid publishing stale initialization results after handler reconfiguration.
    • Ensure waiters are released correctly if initialization fails and a later request retries.
  • Regression coverage

    • Add focused tests for:
      • competing first requests
      • retry after initialization failure
      • stale in-flight initialization during reconfiguration
  • Illustrative change

    @classmethod
    def _get_mirror_index(cls) -> MavenMirrorIndex:
        while True:
            with cls._mirror_index_condition:
                generation = cls._config_generation
                if cls._mirror_index is not None:
                    return cls._mirror_index
                ...

Copilot AI and others added 5 commits September 13, 2026 00:22
Co-authored-by: XRDOGE-XRPL <166251416+XRDOGE-XRPL@users.noreply.github.com>
Co-authored-by: XRDOGE-XRPL <166251416+XRDOGE-XRPL@users.noreply.github.com>
Co-authored-by: XRDOGE-XRPL <166251416+XRDOGE-XRPL@users.noreply.github.com>
Co-authored-by: XRDOGE-XRPL <166251416+XRDOGE-XRPL@users.noreply.github.com>
Co-authored-by: XRDOGE-XRPL <166251416+XRDOGE-XRPL@users.noreply.github.com>
@XRDOGE-XRPL
XRDOGE-XRPL marked this pull request as ready for review September 13, 2026 00:48
@XRDOGE-XRPL
XRDOGE-XRPL merged commit 82fde26 into copilot/behebe-dns-aufloesungsproblem Sep 13, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants