Skip to content

Fall back to local compilation when sccache has no workers - #387

Open
kjmph wants to merge 1 commit into
mainfrom
kjmph/fix-arm-sccache-zero-workers
Open

Fall back to local compilation when sccache has no workers#387
kjmph wants to merge 1 commit into
mainfrom
kjmph/fix-arm-sccache-zero-workers

Conversation

@kjmph

@kjmph kjmph commented Jul 27, 2026

Copy link
Copy Markdown

The distributed scheduler can remain reachable while reporting zero compilation servers. The setup check treated any SchedulerStatus as available, so cache misses waited on 7,140-second requests and retries until GitHub Actions canceled the ARM jobs at six hours.

The existing local fallback was also exported from a child shell, so it could not reach compiler requests in the subsequent Docker build.

Require a nonempty server list, reuse one status snapshot, and source the setup script from both Presto and Velox image builds. This preserves S3 caching while bypassing distributed compilation whenever the scheduler is unavailable.

Add regression coverage for healthy, empty, missing, malformed, failed, explicitly disabled, and fallback-disabled scheduler states, and run it from PR checks.

The distributed scheduler can remain reachable while reporting zero
compilation servers. The setup check treated any SchedulerStatus as
available, so cache misses waited on 7,140-second requests and retries
until GitHub Actions canceled the ARM jobs at six hours.

The existing local fallback was also exported from a child shell, so it
could not reach compiler requests in the subsequent Docker build.

Require a nonempty server list, reuse one status snapshot, and source the
setup script from both Presto and Velox image builds. This preserves S3
caching while bypassing distributed compilation whenever the scheduler is
unavailable.

Add regression coverage for healthy, empty, missing, malformed, failed,
explicitly disabled, and fallback-disabled scheduler states, and run it
from PR checks.
@kjmph
kjmph requested a review from a team as a code owner July 27, 2026 16:07
@kjmph
kjmph requested a review from bdice July 27, 2026 16:07

@simoneves simoneves left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks plausible although I am by no means a power-user of this mechanism

fi
}

healthy_status='{"SchedulerStatus":["https://arm64.example",{"servers":[{"id":"worker-1"}]}]}'

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What about x86_64?

fi
bash /sccache_setup.sh;
# Source the setup so its automatic local-fallback export reaches the build.
source /sccache_setup.sh;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please explain the previous failing here in more detail

Comment thread .github/workflows/pr.yaml
runs-on: ubuntu-latest
outputs:
benchmark_data_tools: ${{ steps.filter.outputs.benchmark_data_tools }}
sccache: ${{ steps.filter.outputs.sccache }}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What does the sccache tag actually do here? (and below)

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