Add ADTypes to ComplicatedPDE Project.toml [deps]/[compat]#1589
Conversation
Per-file ProcessFailedException was previously caught and only @error'd, so benchmark.jl always exited 0 even when one or more .jmd files actually failed — CI showed green despite real failures (e.g. the ComplicatedPDE/Filament.jmd ADTypes missing-dep bug masked until #1589). Collect failures and throw at end. Per-file 'continue on failure' behaviour is preserved (so one bad .jmd doesn't block others from producing artifacts), but the job now exits non-zero if anything failed. This will cause master CI to start showing red for folders that have been silently failing — that's the intended behaviour; the goal is for red CI to reflect real failures. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
d1a9d45 to
f19e774
Compare
Filament.jmd does `using SciMLLogging, ADTypes` but ADTypes was only in the Manifest as a transitive dep, so the chunk eval failed with "Package ADTypes not found in current path". CI marked the job success only because SciMLBenchmarks.weave_file catches per-file ProcessFailedException via @error and doesn't re-throw — benchmark.jl exits 0 even though Filament.jmd actually failed. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
f19e774 to
1966792
Compare
The previous commit added ADTypes to [deps]/[compat] without re-resolving
the Manifest, so its project_hash was stale and every environment
activation warned "The project dependencies or compat requirements have
changed since the manifest was last resolved." Pkg.resolve() on Julia
1.11 records ADTypes as a direct dependency with zero package version
changes (it was already pinned as a transitive dep).
The CI job failure itself (run 26699704967) was runner infrastructure,
not code: ~36 minutes in, the runner's _work tree on amdci1-1 vanished
mid-job, producing
IOError: readdir(".../_tool/julia/1.11.9/x64/share/julia/stdlib/v1.11"):
no such file or directory (ENOENT)
during ODEInterface's lazy `import ODEInterface_jll` (rodas), then
IOError: cd(".../_work/SciMLBenchmarks.jl/SciMLBenchmarks.jl") ENOENT
and finally "could not spawn .../bin/julia: ENOENT" for
SpringBlockNonLinearResistance.jmd. Verified locally on Julia 1.11 that
the Filament model chunks, the rodas() solve, and a WorkPrecisionSet
with rodas + CVODE_BDF all succeed with this environment.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
CI failure diagnosis and fix (run 26699704967, job "Run: benchmarks/ComplicatedPDE")Root cause of the job failure: runner infrastructure, not code. The original This hit ODEInterface's lazy Real (small) defect fixed in this push: the previous commit added ADTypes to Project.toml without re-resolving the Manifest, so every activation in the log warned: Commit c203a33 runs Local verification (Julia 1.11, this environment): instantiated cleanly with no stale-manifest warning; ran Filament.jmd chunks 1–16 + the reference Benchmark retriggered: the push started a new Benchmarks run: https://github.com/SciML/SciMLBenchmarks.jl/actions/runs/27267926373 — if the workspace wipe on the runner recurs there, that needs an infra-side look at the amdci runner cleanup rather than a repo change. 🤖 Generated with Claude Code |
Ignore until reviewed by @ChrisRackauckas.
Follow-up fix to #1580 (just merged). Filament.jmd does `using SciMLLogging, ADTypes` but ADTypes was only present in the Manifest as a transitive dep, not in Project.toml [deps]. The chunk eval fails at the `using` line:
```
ERROR: ArgumentError: Package ADTypes not found in current path.
in expression starting at .../benchmarks/ComplicatedPDE/Filament.jmd:6
```
CI marked the merged PR green only because `SciMLBenchmarks.weave_file` catches per-file `ProcessFailedException` via `@error` at `src/SciMLBenchmarks.jl:100` and doesn't re-throw — so `benchmark.jl` exits 0 even though Filament.jmd actually failed.
This PR adds:
No Manifest changes (ADTypes was already pinned there as a transitive dep).