Resolve benchmark MTKBase before runner startup - #4747
Merged
AayushSabharwal merged 2 commits intoJul 14, 2026
Merged
Conversation
This was referenced Jul 13, 2026
Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
ChrisRackauckas-Claude
force-pushed
the
agent/fix-benchmark-load-order
branch
from
July 13, 2026 20:07
624ddd7 to
7ba423c
Compare
Member
Author
|
CI follow-up after rebasing onto merged #4745:
|
Member
Author
|
Current red-check classification after exact log inspection:
These failures are independent of the benchmark-workflow change. The benchmark jobs themselves are still running. |
Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Member
Author
|
Benchmark workflow follow-up on head cf3e05d:
Fresh CI is now running. |
Member
Author
|
Replacement benchmark CI is complete on head cf3e05d:
This is direct CI validation of both changes in this PR. The remaining red checks are the independently reproduced clean-base failures already classified above. |
Member
Author
|
Follow-up CI classification:
No additional change to this benchmark PR is indicated by these results. |
AayushSabharwal
marked this pull request as ready for review
July 14, 2026 05:39
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.
Please ignore this PR until it has been reviewed by @ChrisRackauckas.
Summary
Pkg.developmutation frombenchmark/benchmarks.jlURL#revision:subdirectorymonorepo specificationDependency and current base
This fix depends on the typo correction in #4745. That PR merged while this PR was queued, so this branch is now rebased onto current
masteratdb56a6a7d174f44efc96511a9679fbca23c323d8; #4745 is already in its ancestry. The PR therefore contains two focused benchmark commits on top ofmaster, without duplicating the merged prerequisite.Root cause
AirspeedVelocity imports the benchmarked ModelingToolkit package before it includes the benchmark script. The script then called
Pkg.developfor the local ModelingToolkitBase checkout after the registered ModelingToolkitBase module was already loaded. Julia retained the registered module while the manifest expected the local module, producing a loaded-path mismatch, missing-cache warnings, and eventually:A formal bisect from
6b5d6c6dcdto9e7dc990cbidentifies9e7dc990cb04dae4f66e16d32bacd23e594ba32a(ci: use local MTKBase in benchmarks) as the first bad commit. Its own historical benchmark run (Actions run 26644089638) already failed with an incompatible ModelingToolkit/ModelingToolkitBase precompile, so the late environment mutation never provided valid source resolution.No existing open issue or PR covers this benchmark failure.
Investigation notes
A local-path
extra-pkgscandidate was rejected after the exact Airspeed runner showed thatPkg.addrequires the supplied path to be a Git repository;lib/ModelingToolkitBaseis a monorepo subdirectory. The final workflow uses the pull request head clone URL and SHA with Pkg's supported monorepo syntax, so both fork and same-repository pull requests resolve the intended source before any package is loaded.Validation
Using Julia 1.12.4, AirspeedVelocity 0.6.5, and an isolated workspace depot and temporary directory:
masterreproduction: exit 1, with registered/local ModelingToolkitBase loaded-path mismatch followed by the exactanalytically_integratederrorhttps://github.com/SciML/ModelingToolkit.jl.git#master:lib/ModelingToolkitBase: exit 0ChrisRackauckas-Claude/ModelingToolkit.jlat94efb41cdb1423c7d35f42140a88e503bd554183: exit 0; Pkg status reported ModelingToolkitBase from that repository, subdirectory, and SHA--check .: exit 0extra-pkgsand forkjob-summaryassertions: exit 0git diff --check upstream/master...HEAD: exit 093b2db3b6ee5a0f707b244264605225984eaf398The Airspeed filter is applied after the benchmark script is included, so the full script setup and first-call workloads were exercised; only the measured benchmark group was narrowed to
mtkcompilefor the local before/after run. ASV was not rerun after rebasing because the benchmark patch is unchanged; the exact earlier ASV result is reported above.