Skip to content

Give an actionable error when MLIR binary download fails - #373

Open
PhilippGrulich wants to merge 1 commit into
mainfrom
claude/mlir-prebuild-import-t2qjkh
Open

Give an actionable error when MLIR binary download fails#373
PhilippGrulich wants to merge 1 commit into
mainfrom
claude/mlir-prebuild-import-t2qjkh

Conversation

@PhilippGrulich

Copy link
Copy Markdown
Member

Summary

Investigated why the pre-built MLIR dependency import (cmake/ImportMLIR.cmakedownload_file() in cmake/macros.cmake) can fail to import.

Findings:

  • The MLIR pre-built binaries are hosted as GitHub release assets in a separate repository, nebulastream/mlir-binaries.
  • Real CI (.github/workflows/pr.yml) currently builds successfully against the pinned MLIR_VERSION (21.1.2), confirming the version pin and download mechanism itself are correct — there is no bug in the pinned version or the release asset naming.
  • The failure mode reproduced here comes from a build environment whose network/proxy access is restricted to a single repository and excludes nebulastream/mlir-binaries, causing the release-asset download to be rejected. download_file() previously surfaced this only as an opaque "HTTP response code said error" with no indication of the cause or how to work around it.

Fix:

  • download_file()'s final failure message now explains that this class of failure is typically caused by restricted network/proxy access to the separate mlir-binaries repo, and points at -DUSE_EXTERNAL_MLIR=ON as the documented escape hatch for building against a locally installed LLVM/MLIR instead of downloading the pre-built binaries.

Test plan

  • Verified locally that a forced download failure now prints the new, actionable FATAL_ERROR message (previously just "Aborting: retry attempts exceeded while failing to download <url>").
  • No functional/behavioral change to the success path — verified download_file() still passes through unmodified on a successful download (retry loop and status handling unchanged).

Generated by Claude Code

@github-actions github-actions Bot 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.

Tracing Benchmark

Details
Benchmark suite Current: 3aad762 Previous: 14b8779 Ratio
exec_bc_addOne 42.3397 ns (± 8.10489) 41.3245 ns (± 7.4719) 1.02
exec_mlir_addOne 291.185 ns (± 7.80306) 288.312 ns (± 5.71107) 1.01
exec_cpp_addOne 3.94542 ns (± 0.474698) 3.94593 ns (± 0.530753) 1.00
exec_interpreted_addOne 39.571 ns (± 1.9094) 39.5856 ns (± 1.98647) 1.00
ssa_add 188.797 ns (± 49.736) 189.683 ns (± 22.1435) 1.00
ssa_ifThenElse 473.174 ns (± 59.637) 447.09 ns (± 56.4127) 1.06
ssa_deeplyNestedIfElse 1.17966 us (± 164.631) 1.10698 us (± 76.8539) 1.07
ssa_loop 486.467 ns (± 54.5807) 473.148 ns (± 28.5543) 1.03
ssa_ifInsideLoop 895.899 ns (± 82.8503) 852.487 ns (± 58.293) 1.05
ssa_loopDirectCall 491.323 ns (± 38.9817) 497.983 ns (± 61.104) 0.99
ssa_pointerLoop 583.234 ns (± 59.1698) 574.984 ns (± 46.7359) 1.01
ssa_staticLoop 423.954 ns (± 46.1169) 418.539 ns (± 41.9918) 1.01
ssa_fibonacci 520.039 ns (± 79.998) 495.628 ns (± 41.0553) 1.05
ssa_gcd 474.083 ns (± 67.8136) 459.397 ns (± 70.174) 1.03
e2e_tiered_bc_to_mlir 3368.09 us (± 115158) 3455.64 us (± 93007.5) 0.97
e2e_single_mlir 5.62753 ms (± 190.186) 5.69342 ms (± 374.152) 0.99
comp_mlir_add 5.72901 ms (± 307.401) 5.59745 ms (± 75.8607) 1.02
comp_mlir_ifThenElse 6.24862 ms (± 224.039) 6.18086 ms (± 70.1066) 1.01
comp_mlir_deeplyNestedIfElse 5.1096 ms (± 145.187) 5.10257 ms (± 71.2786) 1.00
comp_mlir_loop 7.38316 ms (± 280.503) 7.26388 ms (± 66.5618) 1.02
comp_mlir_ifInsideLoop 29.7062 ms (± 827.053) 29.2998 ms (± 1.93843) 1.01
comp_mlir_loopDirectCall 12.2484 ms (± 439.861) 12.0253 ms (± 589.45) 1.02
comp_mlir_pointerLoop 29.2162 ms (± 940.237) 28.0524 ms (± 211.875) 1.04
comp_mlir_staticLoop 5.03227 ms (± 132.874) 5.0497 ms (± 73.1474) 1.00
comp_mlir_fibonacci 10.6369 ms (± 192.469) 10.5517 ms (± 106.49) 1.01
comp_mlir_gcd 9.57825 ms (± 142.277) 9.52985 ms (± 100.353) 1.01
comp_mlir_nestedIf10 10.6845 ms (± 172.363) 10.6082 ms (± 117.17) 1.01
comp_mlir_nestedIf100 25.4958 ms (± 400.749) 25.217 ms (± 197.247) 1.01
comp_mlir_chainedIf10 10.4486 ms (± 1.43859) 9.84473 ms (± 225.364) 1.06
comp_mlir_chainedIf100 21.3631 ms (± 497.463) 20.7803 ms (± 335.166) 1.03
comp_cpp_add 26.2695 ms (± 831.938) 25.6772 ms (± 412.173) 1.02
comp_cpp_ifThenElse 27.1297 ms (± 875.007) 26.3495 ms (± 501.785) 1.03
comp_cpp_deeplyNestedIfElse 28.7238 ms (± 1.62587) 27.8964 ms (± 2.25797) 1.03
comp_cpp_loop 27.591 ms (± 918.24) 26.4103 ms (± 2.09075) 1.04
comp_cpp_ifInsideLoop 28.3344 ms (± 811.379) 27.4066 ms (± 679.553) 1.03
comp_cpp_loopDirectCall 27.4747 ms (± 656.588) 26.227 ms (± 807.182) 1.05
comp_cpp_pointerLoop 27.623 ms (± 700.429) 26.6674 ms (± 888.775) 1.04
comp_cpp_staticLoop 27.0266 ms (± 1.43649) 25.8375 ms (± 792.768) 1.05
comp_cpp_fibonacci 26.9397 ms (± 644.332) 26.3315 ms (± 1.74097) 1.02
comp_cpp_gcd 26.9569 ms (± 647.2) 25.6174 ms (± 829.412) 1.05
comp_cpp_nestedIf10 30.4666 ms (± 898.538) 28.7075 ms (± 879.439) 1.06
comp_cpp_nestedIf100 64.4553 ms (± 1.19309) 62.3274 ms (± 891.694) 1.03
comp_cpp_chainedIf10 32.3486 ms (± 481.105) 31.0567 ms (± 839.436) 1.04
comp_cpp_chainedIf100 93.3727 ms (± 1.49466) 91.663 ms (± 1.15819) 1.02
comp_bc_add 16.5967 us (± 4.13311) 15.3679 us (± 2.1698) 1.08
comp_bc_ifThenElse 20.2845 us (± 4.02807) 20.4755 us (± 3.35036) 0.99
comp_bc_deeplyNestedIfElse 43.0381 us (± 22.387) 25.7216 us (± 3.94249) 1.67
comp_bc_loop 20.6206 us (± 3.67163) 20.3691 us (± 2.66709) 1.01
comp_bc_ifInsideLoop 24.5027 us (± 4.13071) 23.9821 us (± 3.34349) 1.02
comp_bc_loopDirectCall 21.418 us (± 3.74762) 21.4873 us (± 3.91159) 1.00
comp_bc_pointerLoop 22.5219 us (± 4.3369) 23.6934 us (± 5.90259) 0.95
comp_bc_staticLoop 18.6403 us (± 3.29992) 18.7222 us (± 3.85038) 1.00
comp_bc_fibonacci 20.7777 us (± 3.16487) 20.9393 us (± 3.34641) 0.99
comp_bc_gcd 19.7922 us (± 3.08512) 20.0257 us (± 3.28267) 0.99
comp_bc_nestedIf10 49.8668 us (± 10.5802) 48.8948 us (± 6.12696) 1.02
comp_bc_nestedIf100 287.247 us (± 14.9464) 290.023 us (± 24.7282) 0.99
comp_bc_chainedIf10 64.2816 us (± 9.55442) 65.2141 us (± 8.75591) 0.99
comp_bc_chainedIf100 466.705 us (± 37.1823) 495.08 us (± 17.7343) 0.94
comp_tbc_add 1.85295 us (± 151.18) 1.97013 us (± 191.615) 0.94
comp_tbc_ifThenElse 4.22975 us (± 766.822) 4.33227 us (± 640.943) 0.98
comp_tbc_deeplyNestedIfElse 9.60157 us (± 1.12687) 9.92629 us (± 1.27012) 0.97
comp_tbc_loop 4.24453 us (± 386.973) 4.36166 us (± 514.496) 0.97
comp_tbc_ifInsideLoop 7.34038 us (± 993.014) 7.48818 us (± 782.8) 0.98
comp_tbc_loopDirectCall 4.43753 us (± 435.165) 4.67684 us (± 503.618) 0.95
comp_tbc_pointerLoop 5.5011 us (± 547.433) 5.65328 us (± 519.113) 0.97
comp_tbc_staticLoop 4.82943 us (± 722.537) 4.85142 us (± 409.04) 1.00
comp_tbc_fibonacci 4.7283 us (± 510.139) 4.82478 us (± 633.347) 0.98
comp_tbc_gcd 3.70213 us (± 342.515) 3.98474 us (± 628.041) 0.93
comp_tbc_nestedIf10 26.9565 us (± 2.26238) 27.5076 us (± 3.073) 0.98
comp_tbc_nestedIf100 282.636 us (± 9.67249) 285.618 us (± 8.92333) 0.99
comp_tbc_chainedIf10 34.2197 us (± 4.40595) 35.1404 us (± 3.57823) 0.97
comp_tbc_chainedIf100 407.499 us (± 11.0354) 417.843 us (± 23.2181) 0.98
comp_asmjit_add 26.3718 us (± 7.90136) 24.2717 us (± 3.3439) 1.09
comp_asmjit_ifThenElse 32.6668 us (± 5.22703) 32.2864 us (± 3.84337) 1.01
comp_asmjit_deeplyNestedIfElse 50.1899 us (± 10.5896) 50.0224 us (± 10.128) 1.00
comp_asmjit_loop 34.7306 us (± 8.15292) 32.6945 us (± 4.74709) 1.06
comp_asmjit_ifInsideLoop 47.626 us (± 8.32008) 48.8415 us (± 11.603) 0.98
comp_asmjit_loopDirectCall 43.3268 us (± 9.54388) 42.9908 us (± 8.25887) 1.01
comp_asmjit_pointerLoop 45.4598 us (± 9.8375) 46.3782 us (± 9.51436) 0.98
comp_asmjit_staticLoop 30.3338 us (± 5.29263) 29.7142 us (± 4.42358) 1.02
comp_asmjit_fibonacci 34.779 us (± 6.43023) 33.6551 us (± 3.9617) 1.03
comp_asmjit_gcd 36.1141 us (± 7.87068) 33.2792 us (± 5.05442) 1.09
comp_asmjit_nestedIf10 78.0414 us (± 11.1356) 78.0079 us (± 9.80308) 1.00
comp_asmjit_nestedIf100 504.047 us (± 19.0812) 492.899 us (± 18.5419) 1.02
comp_asmjit_chainedIf10 95.8216 us (± 13.3691) 93.4777 us (± 11.4237) 1.03
comp_asmjit_chainedIf100 654.642 us (± 25.4312) 634.361 us (± 22.461) 1.03
trace_add 2.47013 us (± 315.454) 2.3397 us (± 311.307) 1.06
completing_trace_add 2.42474 us (± 338.532) 2.63287 us (± 778.411) 0.92
trace_ifThenElse 9.10275 us (± 1.42475) 8.8132 us (± 1.23382) 1.03
completing_trace_ifThenElse 4.92589 us (± 671.107) 4.57547 us (± 490.909) 1.08
trace_deeplyNestedIfElse 26.8867 us (± 3.84248) 26.0124 us (± 2.80491) 1.03
completing_trace_deeplyNestedIfElse 13.1434 us (± 1.95418) 12.8904 us (± 1.78046) 1.02
trace_loop 8.87157 us (± 1.35865) 8.66303 us (± 1.18416) 1.02
completing_trace_loop 4.9026 us (± 680.214) 4.70593 us (± 577.807) 1.04
trace_ifInsideLoop 16.9543 us (± 2.94527) 16.8575 us (± 2.71583) 1.01
completing_trace_ifInsideLoop 8.77363 us (± 1.28159) 8.46942 us (± 989.557) 1.04
trace_loopDirectCall 9.49133 us (± 2.33782) 8.8304 us (± 1.28981) 1.07
completing_trace_loopDirectCall 4.8915 us (± 520.143) 4.8357 us (± 485.561) 1.01
trace_pointerLoop 14.4425 us (± 2.14184) 14.1048 us (± 2.78449) 1.02
completing_trace_pointerLoop 10.6962 us (± 1.62013) 10.3108 us (± 1.51915) 1.04
trace_staticLoop 7.43415 us (± 889.058) 7.46717 us (± 854.023) 1.00
completing_trace_staticLoop 7.38805 us (± 826.065) 7.56039 us (± 754.296) 0.98
trace_fibonacci 10.2594 us (± 1.68037) 10.0794 us (± 1.66522) 1.02
completing_trace_fibonacci 6.20471 us (± 728.45) 6.11087 us (± 724.107) 1.02
trace_gcd 8.15371 us (± 1.44849) 7.94831 us (± 1.13354) 1.03
completing_trace_gcd 4.16782 us (± 551.989) 4.08816 us (± 510.52) 1.02
trace_nestedIf10 40.0324 us (± 7.62217) 37.9786 us (± 7.23566) 1.05
completing_trace_nestedIf10 41.3449 us (± 10.1412) 38.1445 us (± 5.94377) 1.08
trace_nestedIf100 1.36264 ms (± 46.112) 1.35173 ms (± 38.332) 1.01
completing_trace_nestedIf100 1.36112 ms (± 63.744) 1.36772 ms (± 48.8988) 1.00
trace_chainedIf10 99.6273 us (± 11.0564) 98.0727 us (± 8.94107) 1.02
completing_trace_chainedIf10 50.7451 us (± 7.94122) 48.9055 us (± 7.05805) 1.04
trace_chainedIf100 4.41878 ms (± 31.896) 4.41664 ms (± 40.9728) 1.00
completing_trace_chainedIf100 2.32505 ms (± 74.7461) 2.3069 ms (± 38.0332) 1.01
ir_add 758.579 ns (± 52.1906) 798.667 ns (± 76.1341) 0.95
ir_ifThenElse 1.58118 us (± 129.092) 1.56928 us (± 133.239) 1.01
ir_deeplyNestedIfElse 3.52682 us (± 437.839) 3.36304 us (± 235.3) 1.05
ir_loop 1.71704 us (± 202.792) 1.62131 us (± 182.006) 1.06
ir_ifInsideLoop 2.91386 us (± 308.466) 2.87574 us (± 279.797) 1.01
ir_loopDirectCall 1.86352 us (± 193.063) 1.80265 us (± 308.099) 1.03
ir_pointerLoop 2.04371 us (± 217.025) 2.06626 us (± 227.803) 0.99
ir_staticLoop 1.5215 us (± 188.057) 1.46245 us (± 167.987) 1.04
ir_fibonacci 1.80597 us (± 201.407) 1.74367 us (± 138.248) 1.04
ir_gcd 1.56684 us (± 175.743) 1.49687 us (± 142.622) 1.05
ir_nestedIf10 7.96039 us (± 926.749) 7.76069 us (± 553.136) 1.03
ir_nestedIf100 91.0837 us (± 7.20731) 91.7975 us (± 4.46084) 0.99
ir_chainedIf10 11.9981 us (± 1.4034) 12.0102 us (± 1.09688) 1.00
ir_chainedIf100 169.259 us (± 7.73557) 174.577 us (± 8.80268) 0.97
exec_mlir_add 11.041 ns (± 1.11814) 10.5569 ns (± 0.957746) 1.05
exec_mlir_fibonacci 14.8496 us (± 1.88688) 13.5513 us (± 1.52069) 1.10
exec_mlir_sum 571.377 us (± 27.7006) 543.179 us (± 34.6101) 1.05
exec_cpp_add 4.74796 ns (± 0.754044) 4.76172 ns (± 0.910991) 1.00
exec_cpp_fibonacci 49.2067 us (± 6.29633) 48.0034 us (± 4.29059) 1.03
exec_cpp_sum 11.4195 ms (± 207.631) 11.4073 ms (± 68.9284) 1.00
exec_bc_add 56.6148 ns (± 12.4524) 53.6233 ns (± 2.39616) 1.06
exec_bc_fibonacci 433.376 us (± 17.403) 431.15 us (± 11.3551) 1.01
exec_bc_sum 95.426 ms (± 248.842) 94.7658 ms (± 2.62637) 1.01
exec_tbc_add 27.2885 ns (± 4.1229) 26.6071 ns (± 3.02734) 1.03
exec_tbc_fibonacci 141.922 us (± 7.1097) 140.487 us (± 5.7542) 1.01
exec_tbc_sum 36.2141 ms (± 84.9857) 36.2511 ms (± 159.003) 1.00
exec_asmjit_add 3.52789 ns (± 0.477695) 3.56801 ns (± 0.662199) 0.99
exec_asmjit_fibonacci 14.8698 us (± 3.11961) 14.7187 us (± 2.42364) 1.01
exec_asmjit_sum 2.8162 ms (± 48.3506) 2.80822 ms (± 51.931) 1.00
exec_bc_add_passesOff 56.0036 ns (± 8.3485) 53.3981 ns (± 0.886462) 1.05
exec_bc_add_passesOn 55.4537 ns (± 6.6797) 55.0367 ns (± 7.32706) 1.01
exec_bc_fibonacci_passesOff 434.205 us (± 16.8836) 431.164 us (± 11.6266) 1.01
exec_bc_fibonacci_passesOn 394.172 us (± 18.9945) 389.038 us (± 13.2051) 1.01
exec_bc_sum_passesOff 95.4504 ms (± 253.781) 94.6557 ms (± 2.21379) 1.01
exec_bc_sum_passesOn 79.6342 ms (± 280.588) 79.0462 ms (± 2.06405) 1.01
exec_tbc_add_passesOff 27.2012 ns (± 4.29422) 26.735 ns (± 3.06805) 1.02
exec_tbc_add_passesOn 27.1934 ns (± 3.87516) 26.0811 ns (± 2.41377) 1.04
exec_tbc_fibonacci_passesOff 142.347 us (± 7.5225) 141.757 us (± 7.00518) 1.00
exec_tbc_fibonacci_passesOn 141.696 us (± 7.55327) 142.653 us (± 7.73334) 0.99
exec_tbc_sum_passesOff 36.3902 ms (± 1.00229) 36.2128 ms (± 50.656) 1.00
exec_tbc_sum_passesOn 33.9636 ms (± 137.231) 33.9606 ms (± 81.7397) 1.00
exec_asmjit_add_passesOff 3.68236 ns (± 0.622103) 3.53616 ns (± 0.444475) 1.04
exec_asmjit_add_passesOn 3.66223 ns (± 0.701273) 3.52063 ns (± 0.409302) 1.04
exec_asmjit_fibonacci_passesOff 14.4364 us (± 1.93833) 14.1953 us (± 1.14959) 1.02
exec_asmjit_fibonacci_passesOn 14.3877 us (± 1.57233) 14.4526 us (± 2.03601) 1.00
exec_asmjit_sum_passesOff 2.81081 ms (± 59.7938) 2.79544 ms (± 22.6922) 1.01
exec_asmjit_sum_passesOn 2.81326 ms (± 71.3577) 2.83247 ms (± 281.496) 0.99
exec_bc_add_noRegAlloc 54.9429 ns (± 5.21188) 53.7209 ns (± 3.31915) 1.02
exec_bc_add_regAlloc 54.7569 ns (± 6.28806) 53.6882 ns (± 4.63621) 1.02
exec_bc_fibonacci_noRegAlloc 431.63 us (± 12.9841) 430.284 us (± 10.0406) 1.00
exec_bc_fibonacci_regAlloc 431.795 us (± 11.5928) 432.27 us (± 13.5598) 1.00
exec_bc_sum_noRegAlloc 95.4468 ms (± 111.775) 94.7041 ms (± 3.50961) 1.01
exec_bc_sum_regAlloc 95.5569 ms (± 928.115) 93.7558 ms (± 2.68879) 1.02
exec_bc_add_call 55.8092 ns (± 8.86305) 53.9547 ns (± 5.69584) 1.03
exec_bc_add_switch 42.4151 ns (± 6.11479) 41.5811 ns (± 4.52889) 1.02
exec_bc_add_threaded 40.3854 ns (± 7.39453) 39.7723 ns (± 5.7715) 1.02
exec_bc_fibonacci_call 433.967 us (± 18.7608) 434.049 us (± 18.7702) 1.00
exec_bc_fibonacci_switch 332.952 us (± 11.862) 332.317 us (± 11.0427) 1.00
exec_bc_fibonacci_threaded 436.508 us (± 11.112) 436.228 us (± 14.7313) 1.00
exec_bc_sum_call 95.4384 ms (± 357.301) 93.964 ms (± 2.81663) 1.02
exec_bc_sum_switch 68.3145 ms (± 2.26918) 69.8854 ms (± 3.12756) 0.98
exec_bc_sum_threaded 86.7102 ms (± 926.909) 86.725 ms (± 1.37075) 1.00
exec_bc_add_threaded_noReuse 41.8494 ns (± 10.3519) 39.3616 ns (± 5.42663) 1.06
exec_bc_add_threaded_reuse 34.9073 ns (± 4.7646) 34.6287 ns (± 2.89211) 1.01
exec_bc_fibonacci_threaded_noReuse 435.097 us (± 11.7425) 435.438 us (± 11.9375) 1.00
exec_bc_fibonacci_threaded_reuse 435.243 us (± 10.6469) 434.497 us (± 10.2818) 1.00
exec_bc_sum_threaded_noReuse 86.9466 ms (± 1.90965) 86.4488 ms (± 590) 1.01
exec_bc_sum_threaded_reuse 86.5291 ms (± 615.001) 86.8712 ms (± 3.47558) 1.00
exec_bc_add_threaded_noSuperinstr 39.8322 ns (± 5.21504) 39.0278 ns (± 3.68365) 1.02
exec_bc_add_threaded_superinstr 40.202 ns (± 6.89578) 39.548 ns (± 6.27968) 1.02
tiered_twotier_addOne 3.35863 ms (± 113.645) 3.37833 ms (± 49.851) 0.99
tiered_singletier_addOne 3.28655 ms (± 104.803) 3.28493 ms (± 45.8553) 1.00
single_compile_mlir_addOne 3.3008 ms (± 145.66) 3.28697 ms (± 79.5036) 1.00
single_compile_cpp_addOne 25.2138 ms (± 568.88)
single_compile_bc_addOne 72.9714 us (± 13.35)
tiered_twotier_sumLoop 5.51724 ms (± 129.597)
tiered_singletier_sumLoop 5.40783 ms (± 227.807)
single_compile_mlir_sumLoop 5.38713 ms (± 96.6824)
single_compile_cpp_sumLoop 26.0062 ms (± 423.956)
single_compile_bc_sumLoop 132.092 us (± 17.6478)

This comment was automatically generated by workflow using github-action-benchmark.

@PhilippGrulich
PhilippGrulich marked this pull request as ready for review July 9, 2026 05:41
The download_file() failure message gave no indication of why the
fetch failed. Since the pre-built MLIR binaries live in a separate
repository (nebulastream/mlir-binaries), the most common cause is
restricted network/proxy access to that repo rather than an actual
missing release, so point users at USE_EXTERNAL_MLIR=ON as a fallback.
@PhilippGrulich
PhilippGrulich force-pushed the claude/mlir-prebuild-import-t2qjkh branch from b628502 to 3aad762 Compare July 9, 2026 05:41
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