Release v3.86.2: ship SizedMatrix init_cacheval fix + regression test#1061
Closed
ChrisRackauckas-Claude wants to merge 1 commit into
Closed
Conversation
The `init_cacheval(::GenericLUFactorization/::RFLUFactorization)` regression for `SizedMatrix` (StaticArrays.LU has no `factors`/`info` field) was fixed in SciML#1056/SciML#1053 but never released: `Project.toml` still read `3.86.1`, identical to the registered release, so OrdinaryDiffEq CI kept installing the buggy v3.86.1 and the "Sized Matrix Tests" (Rodas4 over a `SizedMatrix` state) errored with `type StaticArrays.LU has no field factors`. Bump to 3.86.2 so the fix ships, and add test/Core/sized_matrix.jl covering the `init_cacheval` path that threw: `init` of a `LinearProblem{SizedMatrix}` with the default solver and with explicit `GenericLUFactorization`/`RFLUFactorization`. The test errors on v3.86.1 with the exact `FieldError` and passes on main. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
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 until reviewed by @ChrisRackauckas.
What this fixes
OrdinaryDiffEq.jl master CI is failing in the
InterfaceIVgroup (sized_matrix_tests.jl), e.g. this run:Root cause
PR #1038 changed
init_cacheval(::GenericLUFactorization)andinit_cacheval(::RFLUFactorization)to rebuild the cacheval viaLinearAlgebra.LU(luinst.factors, ipiv, luinst.info)so the pivot slot type matches for non-Arraydense containers (e.g.FixedSizeArray). ButArrayInterface.lu_instancereturns aStaticArrays.LU(fieldsL/U/p, nofactors/info) for aSizedMatrix, so the rebuild threw.Rodas4over aSizedMatrixstate routes through the default solver, which initializes theGenericLU/RFLUcachevals — hence the downstream failure.Why it's still broken downstream
The code fix already landed on
main(#1056, #1053: guard the rebuild withluinst isa LinearAlgebra.LU || return luinst, ipiv). The problem is purely a release one:Project.tomlstill readversion = "3.86.1", identical to the latest registered release, so no new version was ever cut. OrdinaryDiffEq CI keeps resolving the buggy registered v3.86.1.Changes
3.86.1→3.86.2so the already-merged fix actually ships.test/Core/sized_matrix.jl(and register it inruntests.jl) covering theinit_cachevalpath that threw:initof aLinearProblem{SizedMatrix}with the default solver and with explicitGenericLUFactorization/RFLUFactorization. There was no regression test for this in LinearSolve's own suite — only the downstream OrdinaryDiffEq test caught it.Verification (run locally, Julia 1.12)
FieldErrorwith registered v3.86.1 via the OrdinaryDiffEqsized_matrix_testsproblem (Rodas4over aSizedMatrix).retcode=Successwithmaindev'd in.test/Core/sized_matrix.jlerrors on v3.86.1 with the exacttype StaticArrays.LU has no field factorsand passes onmain.🤖 Generated with Claude Code