CI: add disk usage snapshot before BOLT cmake configuration (testing)#103908
CI: add disk usage snapshot before BOLT cmake configuration (testing)#103908leshikus wants to merge 1 commit intoClickHouse:masterfrom
Conversation
Add `du / | sort -rn | head -100` and `df -h` right before the BOLT profile collection CMake step to diagnose disk exhaustion. Every cmake compiler-feature test invokes the BOLT-instrumented `clang-21.inst`, which writes a profile file per invocation. With hundreds of tests this may consume several GB before the real build starts and kill the runner silently. The snapshot will confirm whether disk is the culprit. Modifying this file also busts the toolchain cache so the `Build Toolchain (PGO, BOLT)` job runs in the PR workflow.
|
Workflow [PR], commit [ab260e7] Summary: ✅ AI ReviewSummaryThis PR adds a pre-BOLT disk snapshot in Missing context
Findings
ClickHouse Rules
Performance & Safety
Final Verdict
|
| # consume several GB before the real build starts. | ||
| if bolt_ok: | ||
| print("=== Disk usage before BOLT cmake configuration ===") | ||
| Shell.check("du / 2>/dev/null | sort -rn | head -100 || true") |
There was a problem hiding this comment.
du / 2>/dev/null | sort -rn | head -100 scans the whole root tree and then sorts potentially millions of lines. On a nearly-full runner (the exact case this PR is diagnosing), sort can spill temporary files to disk and make disk pressure worse or fail silently due to the trailing || true.
Please bound this snapshot to avoid self-inflicted pressure, e.g. use du -x --max-depth=<N> / (single filesystem + limited depth) before sorting.
Testing PR to diagnose the BOLT toolchain build failure from #103307.
Every cmake compiler-feature test invokes
clang-21.inst(BOLT-instrumentedclang), which writes a profile file per invocation. With hundreds of tests this
may fill several GB of disk before the real build starts, killing the runner
silently. This PR adds
du / | sort -rn | head -100anddf -hright beforethe BOLT cmake step to confirm whether disk exhaustion is the root cause.
The
build_toolchain.pychange also busts the toolchain cache so theBuild Toolchain (PGO, BOLT) (amd64)job actually runs in the PR workflow.Changelog category (leave one):