[ML]Fail CMake configure if 3rd-party git clone fails - #3164
Merged
edsavage merged 3 commits intoAug 31, 2026
Conversation
This was referenced Aug 30, 2026
Previously, execute_process() silently ignored a non-zero exit from the git clone command. If the GitLab server is unavailable or overloaded, CMake would continue configuring with no Eigen headers present, leading to a cryptic compiler error hundreds of lines later instead of a clear configure-time failure. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Same hardening as pull-eigen.cmake: report a clear configure-time error if the git clone fails rather than silently continuing and producing a cryptic compiler error later. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
edsavage
force-pushed
the
fix/harden-3rd-party-cmake-clones
branch
from
August 30, 2026 21:47
cf1f157 to
f9aa308
Compare
|
Pinging @elastic/ml-core (Team:ML) |
Contributor
There was a problem hiding this comment.
🟢 Approval recommended
The change is small and low-risk, and the new failure mode correctly surfaces clone errors during configure rather than later during compilation.
Pull request overview
This PR hardens third-party dependency fetching during CMake configure by failing fast when git clone fails, avoiding later compile errors due to missing headers.
Changes:
- Add
RESULT_VARIABLEchecking for the Eigen clone and terminate configure withFATAL_ERRORon failure. - Apply the same failure-fast behavior to the Valijson clone.
File summaries
| File | Description |
|---|---|
| 3rd_party/pull-eigen.cmake | Fail CMake configure immediately if cloning Eigen fails. |
| 3rd_party/pull-valijson.cmake | Fail CMake configure immediately if cloning Valijson fails. |
Review details
- Files reviewed: 2/2 changed files
- Comments generated: 2
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
…causes Address Copilot review: include the clone URL in the error message and replace "Check network access to X" with "Check network connectivity, proxy settings, and git availability" since git clone can fail for reasons beyond simple network access. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
prwhelan
approved these changes
Aug 31, 2026
This was referenced Aug 31, 2026
Contributor
💚 All backports created successfully
Questions ?Please refer to the Backport tool documentation and see the Github Action logs for details |
elastic-vault-github-plugin-prod Bot
added a commit
that referenced
this pull request
Aug 31, 2026
Previously, execute_process() silently ignored a non-zero exit from the git clone command. If the GitLab server is unavailable or overloaded, CMake would continue configuring with no Eigen headers present, leading to a cryptic compiler error hundreds of lines later instead of a clear configure-time failure. Same hardening for valijson as for pull-eigen.cmake: report a clear configure-time error if the git clone fails rather than silently continuing and producing a cryptic compiler error later. (cherry picked from commit f95b8ef) Co-authored-by: Ed Savage <ed.savage@elastic.co>
elastic-vault-github-plugin-prod Bot
added a commit
that referenced
this pull request
Aug 31, 2026
Previously, execute_process() silently ignored a non-zero exit from the git clone command. If the GitLab server is unavailable or overloaded, CMake would continue configuring with no Eigen headers present, leading to a cryptic compiler error hundreds of lines later instead of a clear configure-time failure. Same hardening for valijson as for pull-eigen.cmake: report a clear configure-time error if the git clone fails rather than silently continuing and producing a cryptic compiler error later. (cherry picked from commit f95b8ef) Co-authored-by: Ed Savage <ed.savage@elastic.co>
elastic-vault-github-plugin-prod Bot
added a commit
that referenced
this pull request
Aug 31, 2026
Previously, execute_process() silently ignored a non-zero exit from the git clone command. If the GitLab server is unavailable or overloaded, CMake would continue configuring with no Eigen headers present, leading to a cryptic compiler error hundreds of lines later instead of a clear configure-time failure. Same hardening for valijson as for pull-eigen.cmake: report a clear configure-time error if the git clone fails rather than silently continuing and producing a cryptic compiler error later. (cherry picked from commit f95b8ef) Co-authored-by: Ed Savage <ed.savage@elastic.co>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
RESULT_VARIABLEchecking to theexecute_process()git clone call inpull-eigen.cmake.fatal error: Eigen/Core: No such file or directory.Root cause
The 9.4 and 9.5 snapshot builds on 2026-08-30 failed with
Eigen/Core: No such file or directory. The build log showed:CMake continued silently and the compiler later failed when trying to include Eigen headers.
Test plan
RESULT_VARIABLEper the CMakeexecute_process()docs🤖 Generated with Claude Code