Skip to content

Commit 295fd1b

Browse files
edsavagecursoragent
andcommitted
[ML] Fix macOS debug build failures and aarch64 timing regression
The debug build pipeline has been failing on macOS since Feb 10 because the artifact_paths glob `*/**/unittest/ml_test_*` matched the test executables themselves — debug binaries are enormous and exceeded Buildkite's 10 GiB artifact limit. Remove the overly broad glob. Disable unity builds on macOS (only 4 Orka cores — unity is counterproductive) and revert test parallelism to -j 2 for <=4-core machines to avoid starving timing-sensitive tests. Co-authored-by: Cursor <cursoragent@cursor.com>
1 parent 2b94c7c commit 295fd1b

File tree

3 files changed

+7
-8
lines changed

3 files changed

+7
-8
lines changed

.buildkite/pipelines/build_macos.json.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@
4343
"PATH": "/opt/homebrew/bin:$PATH",
4444
"ML_DEBUG": "0",
4545
"CPP_CROSS_COMPILE": "",
46-
"CMAKE_FLAGS": "-DCMAKE_TOOLCHAIN_FILE=cmake/darwin-aarch64.cmake -DCMAKE_UNITY_BUILD=ON -DML_PCH=ON",
46+
"CMAKE_FLAGS": "-DCMAKE_TOOLCHAIN_FILE=cmake/darwin-aarch64.cmake -DML_PCH=ON",
4747
"RUN_TESTS": "true",
4848
"BOOST_TEST_OUTPUT_FORMAT_FLAGS": "--logger=JUNIT,error,boost_test_results.junit",
4949
}
@@ -67,7 +67,7 @@ def main(args):
6767
"depends_on": "check_style",
6868
"key": f"build_test_macos-{arch}-{build_type}",
6969
"env": envs[arch],
70-
"artifact_paths": "*/**/unittest/boost_test_results.junit;*/**/unittest/ml_test_*",
70+
"artifact_paths": "*/**/unittest/boost_test_results.junit",
7171
"plugins": {
7272
"test-collector#v1.2.0": {
7373
"files": "*/*/unittest/boost_test_results.junit",

build.gradle

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -126,11 +126,10 @@ project.ext.numCpus = Runtime.runtime.availableProcessors()
126126
// many suites simultaneously causes resource contention. These values were
127127
// determined empirically (see PR #2900).
128128
// On low-core machines (<=4, e.g. macOS CI Orka VMs with 4 cores),
129-
// cap at numCpus-1 to leave headroom for timing-sensitive tests
130-
// (e.g. CKMostCorrelatedTest/testScale). For higher core counts,
131-
// ceil(numCpus/2) balances parallelism vs contention — ceil(numCpus/3)
132-
// was too conservative on 8-core machines (52 min vs 39.5 min).
133-
project.ext.testParallel = isWindows ? 2 : (numCpus <= 4 ? Math.max(2, numCpus - 1) : Math.max(2, (int) Math.ceil(numCpus / 2.0)))
129+
// use 2 to avoid starving timing-sensitive tests like
130+
// CKMostCorrelatedTest/testScale. For higher core counts,
131+
// ceil(numCpus/2) balances parallelism vs contention.
132+
project.ext.testParallel = isWindows ? 2 : (numCpus <= 4 ? 2 : Math.max(2, (int) Math.ceil(numCpus / 2.0)))
134133
project.ext.makeEnvironment = [ 'CPP_CROSS_COMPILE': cppCrossCompile,
135134
'VERSION_QUALIFIER': versionQualifier,
136135
'SNAPSHOT': (isSnapshot ? 'yes' : 'no'),

dev-tools/docker/docker_entrypoint.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ if [ "x$1" = "x--test" ] ; then
110110
# For higher core counts, ceil(ncpus/2) balances parallelism vs
111111
# contention — ceil(ncpus/3) was too conservative on 8-core machines.
112112
if [ "$NCPUS" -le 4 ]; then
113-
TEST_PARALLEL=$(( NCPUS > 2 ? NCPUS - 1 : 2 ))
113+
TEST_PARALLEL=2
114114
else
115115
TEST_PARALLEL=$(( (NCPUS + 1) / 2 ))
116116
fi

0 commit comments

Comments
 (0)