-
Type:
Task
-
Resolution: Fixed
-
Priority:
Major - P3
-
Affects Version/s: None
-
Component/s: Bazel
-
None
-
Build OnDeck
-
None
-
None
-
None
-
None
-
None
-
None
-
None
Small program debug actions currently reserve 20 GiB/six CPUs for extraction and 10 GiB/three CPUs for stripping, limiting local build concurrency. Select one-CPU objcopy reservations from the original link's object count and debug configuration when the link contains only visible object inputs within the measured range.
Memory reservations in GiB, ordered small/medium/large:
| Configuration | Extraction | Stripping |
|---|---|---|
| Default split DWARF, debug level 1 | 1 / 2 / 6 | 1 / 3 / 8 |
| Other ordinary LLVM v5 configurations | 1 / 8 / 16 | 1 / 3 / 8 |
The tiers cover 1–1,500, 1,501–5,000, and 5,001–8,000 object inputs. Measurements cover small tests, mongobridge, a large repl test, and server binaries, including full DWARF with debug level 3 and compile compression disabled. Full-DWARF mongod peaks at 6.4 GiB extraction and 3.1 GiB stripping; the conservative profile leaves at least 2.4x measured headroom. Measurement tables and methodology are recorded beside the reservations.
Keep the previous 20/10 GiB memory fallback for LTO, instrumentation, unlimited type information, unknown producers, and sizes outside the measured range. Unlimited type information propagates through both deps and implementation_deps, including debug wrappers. Links containing opaque .a or .rlib archives also use the fallback because their members cannot be bounded by the visible object count. GDB indexing retains its separate CPU/memory budgets; shared-library reservations are unchanged.
CI timing comparison
All three tasks passed. These are total CI task durations for the pre-rebase PR head 084ec378717e, compared with mainline at its base ea4adc6d9c43; each comparison uses the same distro and AMI.
| Task / variant | Mainline baseline | PR | Observed difference |
|---|---|---|---|
| archive_dist_test_debug / amazon-linux2023-arm64-static-compile | 15m 29s | 13m 08s | 15.2% faster |
| archive_dist_test / amazon-linux2023-arm64-local-compile | 1h 47m 54s | 1h 44m 39s | 3.0% faster |
| compile_dbtest / linux-x86-dynamic-compile | 2m 26s | 2m 30s | 2.5% slower |
These results do not establish a repeatable speedup. Across six recent successful mainline runs, ARM static debug packaging ranged from 12m 41s to 15m 29s; the immediately preceding mainline run also took 13m 08s. Its Bazel build took 588.819s versus 590.707s for the PR. For ARM local compile, the main Bazel build improved by 0.6% (6050.340s → 6016.161s); for compile_dbtest, it improved by 1.0% (66.600s → 65.951s), despite the slightly longer total task time.
The expected benefit is greater concurrency for eligible debug actions. A controlled benchmark building many small test binaries with non-LTO debug separation, reusing compilation/link outputs and rerunning only extraction/stripping, has not been run.