Skip to content

Update to OrdinaryDiffEq.jl v7 and related SciML packages#2910

Draft
github-actions[bot] wants to merge 51 commits intomainfrom
compathelper/new_version/2026-04-02-00-09-29-812-04017954462
Draft

Update to OrdinaryDiffEq.jl v7 and related SciML packages#2910
github-actions[bot] wants to merge 51 commits intomainfrom
compathelper/new_version/2026-04-02-00-09-29-812-04017954462

Conversation

@github-actions
Copy link
Copy Markdown
Contributor

@github-actions github-actions Bot commented Apr 2, 2026

This pull request changes the compat entry for the RecursiveArrayTools package from 3.37 to 3.37, 4.
This keeps the compat entries for earlier versions.

Note: I have not tested your package with this new compat entry.
It is your responsibility to make sure that your package tests pass before you merge this pull request.

Closes #2918, closes #2919, closes #2949, closes #2950, closes #2960, closes #2961, closes #2962, closes #2963, closes #2965, closes #2966, closes #2967, closes #2968, closes #2969, closes #2970, closes #2971, closes #2972, closes #2973, closes #2981, closes #2983, closes #2984.

The required changes are:

  • Replacing u_modified! by derivative_discontinuity!
  • adapting the new controller interface
  • stage limiters are not allowed anymore as positional arguments, but need to be keyword arguments
  • iterating over a VectorOfArray of SVectors now returns the underlying floating values, not the SVector, fixed by replacing u by parent(u)
  • thread is now passed as FastBroadcast.Serial()/FastBroadcast.Threaded() instead of True()/False().

@ranocha ranocha force-pushed the compathelper/new_version/2026-04-02-00-09-29-812-04017954462 branch from 5d38e62 to 4a12427 Compare April 2, 2026 00:09
@codecov
Copy link
Copy Markdown

codecov Bot commented Apr 2, 2026

Codecov Report

❌ Patch coverage is 72.58065% with 17 lines in your changes missing coverage. Please review.
✅ Project coverage is 97.10%. Comparing base (c5a93b1) to head (b4b16b3).

Files with missing lines Patch % Lines
ext/TrixiOrdinaryDiffEqCoreExt.jl 38.89% 11 Missing ⚠️
src/callbacks_step/save_restart.jl 71.43% 2 Missing ⚠️
src/callbacks_step/save_restart_dg.jl 81.82% 2 Missing ⚠️
src/callbacks_step/summary.jl 0.00% 1 Missing ⚠️
src/callbacks_step/trivial.jl 0.00% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #2910      +/-   ##
==========================================
- Coverage   97.13%   97.10%   -0.03%     
==========================================
  Files         625      626       +1     
  Lines       48514    48544      +30     
==========================================
+ Hits        47122    47137      +15     
- Misses       1392     1407      +15     
Flag Coverage Δ
unittests 97.10% <72.58%> (-0.03%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Copy link
Copy Markdown
Member

@JoshuaLampert JoshuaLampert left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Needs dependencies like SummationByPartsOperators.jl to be updated first.

@JoshuaLampert
Copy link
Copy Markdown
Member

We need jlchan/StartUpDG.jl#219 to be merged and released before.

@JoshuaLampert JoshuaLampert marked this pull request as draft April 28, 2026 23:31
@JoshuaLampert
Copy link
Copy Markdown
Member

The current Windows MPI job still seems to hang, but Ubuntu now runs. It's also interesting that in this PR CI was consistently hanging while in other PRs I think we didn't see it.

Comment thread docs/Project.toml
@vchuravy
Copy link
Copy Markdown
Member

vchuravy commented May 4, 2026

It's also interesting that in this PR CI was consistently hanging while in other PRs I think we didn't see it.

I am wondering if it has to do something with it being on CI.

@JoshuaLampert
Copy link
Copy Markdown
Member

but Ubuntu now runs.

Looks like this was too early. Now it also seems to hang, but at a later stage than before.

@vchuravy
Copy link
Copy Markdown
Member

vchuravy commented May 4, 2026

On AArch64 it is:

elixir_advection_restart.jl:   LoadError: Loading of controller OrdinaryDiffEqCore.PIDControllerCache{Float64, typeof(OrdinaryDiffEqCore.default_dt_factor_limiter), Float64} not implemented.
  Stacktrace:
    [1] error(s::String)
      @ Base ./error.jl:35
    [2] load_controller!(integrator::OrdinaryDiffEqCore.ODEIntegrator{OrdinaryDiffEqLowStorageRK.RDPK3SpFSAL49{typeof(OrdinaryDiffEqCore.trivial_limiter!), typeof(OrdinaryDiffEqCore.trivial_limiter!), FastBroadcast.Serial}, true, Vector{Float64}, Nothing, Float64, Trixi.SemidiscretizationHyperbolic{Trixi.TreeMesh{2, Trixi.ParallelTree{2, Float64}, Float64}, Trixi.LinearScalarAdvectionEquation2D{Float64}, typeof(Trixi.initial_condition_convergence_test), Trixi.BoundaryConditionPeriodic, Nothing, Trixi.DGSEM{Trixi.LobattoLegendreBasis{Float64, 4, StaticArraysCore.SVector{4, Float64}, Matrix{Float64}, Matrix{Float64}}, Trixi.LobattoLegendreMortarL2{Float64, 4, Matrix{Float64}, Matrix{Float64}}, Trixi.SurfaceIntegralWeakForm{Trixi.FluxLaxFriedrichs{typeof(Trixi.max_abs_speed)}}, Trixi.VolumeIntegralWeakForm}, @NamedTuple{elements::Trixi.TreeElementContainer2D{Float64, Float64}, interfaces::Trixi.TreeInterfaceContainer2D{Float64}, mpi_interfaces::Trixi.TreeMPIInterfaceContainer2D{Float64}, boundaries::Trixi.TreeBoundaryContainer2D{Float64, Float64}, mortars::Trixi.TreeL2MortarContainer2D{Float64}, mpi_mortars::Trixi.TreeMPIL2MortarContainer2D{Float64}, mpi_cache::Trixi.MPICache{Float64}, fstar_primary_upper_threaded::Vector{StaticArraysCore.MMatrix{1, 4, Float64, 4}}, fstar_primary_lower_threaded::Vector{StaticArraysCore.MMatrix{1, 4, Float64, 4}}, fstar_secondary_upper_threaded::Vector{StaticArraysCore.MMatrix{1, 4, Float64, 4}}, fstar_secondary_lower_threaded::Vector{StaticArraysCore.MMatrix{1, 4, Float64, 4}}}}, Float64, Float64, Vector{Vector{Float64}}, SciMLBase.ODESolution{Float64, 2, Vector{Vector{Float64}}, Nothing, Nothing, Vector{Float64}, Vector{Vector{Vector{Float64}}}, Nothing, SciMLBase.ODEProblem{Vector{Float64}, Tuple{Float64, Float64}, true, Trixi.SemidiscretizationHyperbolic{Trixi.TreeMesh{2, Trixi.ParallelTree{2, Float64}, Float64}, Trixi.LinearScalarAdvectionEquation2D{Float64}, typeof(Trixi.initial_condition_convergence_test), Trixi.BoundaryConditionPeriodic, Nothing, Trixi.DGSEM{Trixi.LobattoLegendreBasis{Float64, 4, StaticArraysCore.SVector{4, Float64}, Matrix{Float64}, Matrix{Float64}}, Trixi.LobattoLegendreMortarL2{Float64, 4, Matrix{Float64}, Matrix{Float64}}, Trixi.SurfaceIntegralWeakForm{Trixi.FluxLaxFriedrichs{typeof(Trixi.max_abs_speed)}}, Trixi.VolumeIntegralWeakForm}, @NamedTuple{elements::Trixi.TreeElementContainer2D{Float64, Float64}, interfaces::Trixi.TreeInterfaceContainer2D{Float64}, mpi_interfaces::Trixi.TreeMPIInterfaceContainer2D{Float64}, boundaries::Trixi.TreeBoundaryContainer2D{Float64, Float64}, mortars::Trixi.TreeL2MortarContainer2D{Float64}, mpi_mortars::Trixi.TreeMPIL2MortarContainer2D{Float64}, mpi_cache::Trixi.MPICache{Float64}, fstar_primary_upper_threaded::Vector{StaticArraysCore.MMatrix{1, 4, Float64, 4}}, fstar_primary_lower_threaded::Vector{StaticArraysCore.MMatrix{1, 4, Float64, 4}}, fstar_secondary_upper_threaded::Vector{StaticArraysCore.MMatrix{1, 4, Float64, 4}}, fstar_secondary_lower_threaded::Vector{StaticArraysCore.MMatrix{1, 4, Float64, 4}}}}, SciMLBase.ODEFunction{true, SciMLBase.FullSpecialize, typeof(Trixi.rhs!), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing, Nothing, Nothing, Nothing}, @Kwargs{}, SciMLBase.StandardODEProblem}, OrdinaryDiffEqLowStorageRK.RDPK3SpFSAL49{typeof(OrdinaryDiffEqCore.trivial_limiter!), typeof(OrdinaryDiffEqCore.trivial_limiter!), FastBroadcast.Serial}, OrdinaryDiffEqCore.InterpolationData{SciMLBase.ODEFunction{true, SciMLBase.FullSpecialize, typeof(Trixi.rhs!), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing, Nothing, Nothing, Nothing}, Vector{Vector{Float64}}, Vector{Float64}, Vector{Vector{Vector{Float64}}}, Nothing, OrdinaryDiffEqLowStorageRK.LowStorageRK3SpFSALCache{Vector{Float64}, Vector{Float64}, Vector{Float64}, OrdinaryDiffEqLowStorageRK.LowStorageRK3SpFSALConstantCache{8, Float64, Float64}, typeof(OrdinaryDiffEqCore.trivial_limiter!), typeof(OrdinaryDiffEqCore.trivial_limiter!), FastBroadcast.Serial}, Nothing}, SciMLBase.DEStats, Nothing, Nothing, Nothing, Nothing}, SciMLBase.ODEFunction{true, SciMLBase.FullSpecialize, typeof(Trixi.rhs!), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing, Nothing, Nothing, Nothing}, OrdinaryDiffEqLowStorageRK.LowStorageRK3SpFSALCache{Vector{Float64}, Vector{Float64}, Vector{Float64}, OrdinaryDiffEqLowStorageRK.LowStorageRK3SpFSALConstantCache{8, Float64, Float64}, typeof(OrdinaryDiffEqCore.trivial_limiter!), typeof(OrdinaryDiffEqCore.trivial_limiter!), FastBroadcast.Serial}, OrdinaryDiffEqCore.DEOptions{Float64, Float64, Float64, Float64, typeof(Trixi.ode_norm), typeof(LinearAlgebra.opnorm), Nothing, SciMLBase.CallbackSet{Tuple{}, Tuple{SciMLBase.DiscreteCallback{typeof(Trixi.summary_callback), typeof(Trixi.summary_callback), Trixi.var"#initialize#1652"{Bool}, typeof(Trixi.finalize_summary_callback), Nothing, Tuple{}}, SciMLBase.DiscreteCallback{Trixi.var"#1658#1665"{Int64}, Trixi.AnalysisCallback{Trixi.LobattoLegendreAnalyzer{Float64, 7, StaticArraysCore.SVector{7, Float64}, Matrix{Float64}}, Tuple{typeof(Trixi.entropy_timederivative), typeof(Trixi.entropy), typeof(Trixi.energy_total)}, StaticArraysCore.SVector{1, Float64}, @NamedTuple{u_local::StrideArraysCore.StaticStrideArray{Float64, 3, (1, 2, 3), Tuple{Static.StaticInt{1}, Static.StaticInt{7}, Static.StaticInt{7}}, Tuple{Nothing, Nothing, Nothing}, Tuple{Static.StaticInt{1}, Static.StaticInt{1}, Static.StaticInt{1}}, 49}, u_tmp1::StrideArraysCore.StaticStrideArray{Float64, 3, (1, 2, 3), Tuple{Static.StaticInt{1}, Static.StaticInt{7}, Static.StaticInt{4}}, Tuple{Nothing, Nothing, Nothing}, Tuple{Static.StaticInt{1}, Static.StaticInt{1}, Static.StaticInt{1}}, 28}, x_local::StrideArraysCore.StaticStrideArray{Float64, 3, (1, 2, 3), Tuple{Static.StaticInt{2}, Static.StaticInt{7}, Static.StaticInt{7}}, Tuple{Nothing, Nothing, Nothing}, Tuple{Static.StaticInt{1}, Static.StaticInt{1}, Static.StaticInt{1}}, 98}, x_tmp1::StrideArraysCore.StaticStrideArray{Float64, 3, (1, 2, 3), Tuple{Static.StaticInt{2}, Static.StaticInt{7}, Static.StaticInt{4}}, Tuple{Nothing, Nothing, Nothing}, Tuple{Static.StaticInt{1}, Static.StaticInt{1}, Static.StaticInt{1}}, 56}}}, typeof(Trixi.initialize!), typeof(SciMLBase.FINALIZE_DEFAULT), Nothing, Tuple{}}, SciMLBase.DiscreteCallback{Trixi.AliveCallback, Trixi.AliveCallback, typeof(Trixi.initialize!), typeof(SciMLBase.FINALIZE_DEFAULT), Nothing, Tuple{}}, SciMLBase.DiscreteCallback{Trixi.SaveRestartCallback, Trixi.SaveRestartCallback, typeof(Trixi.initialize!), typeof(SciMLBase.FINALIZE_DEFAULT), Nothing, Tuple{}}, SciMLBase.DiscreteCallback{Trixi.SaveSolutionCallback{Int64, typeof(Trixi.cons2prim)}, Trixi.SaveSolutionCallback{Int64, typeof(Trixi.cons2prim)}, typeof(Trixi.initialize_save_cb!), typeof(SciMLBase.FINALIZE_DEFAULT), Nothing, Tuple{}}}}, typeof(DiffEqBase.ODE_DEFAULT_ISOUTOFDOMAIN), typeof(DiffEqBase.ODE_DEFAULT_PROG_MESSAGE), typeof(Trixi.ode_unstable_check), DataStructures.BinaryHeap{Float64, DataStructures.FasterForward}, DataStructures.BinaryHeap{Float64, DataStructures.FasterForward}, Nothing, Nothing, Int64, Tuple{}, Tuple{}, Tuple{}, DiffEqBase.DEVerbosity{SciMLLogging.Minimal, SciMLLogging.Minimal, SciMLLogging.WarnLevel, SciMLLogging.WarnLevel, SciMLLogging.WarnLevel, SciMLLogging.WarnLevel, SciMLLogging.WarnLevel, SciMLLogging.WarnLevel, SciMLLogging.Silent, SciMLLogging.Silent, SciMLLogging.Silent, SciMLLogging.Silent, SciMLLogging.Silent, SciMLLogging.Silent, SciMLLogging.WarnLevel, SciMLLogging.Silent, SciMLLogging.Silent, SciMLLogging.Silent, SciMLLogging.WarnLevel, SciMLLogging.Silent, SciMLLogging.WarnLevel, SciMLLogging.WarnLevel, SciMLLogging.Silent, SciMLLogging.Silent, SciMLLogging.Silent, SciMLLogging.Silent, SciMLLogging.Silent, SciMLLogging.Silent, SciMLLogging.Silent, SciMLLogging.Silent, SciMLLogging.Silent, SciMLLogging.Silent}, Nothing}, Vector{Float64}, Float64, Nothing, DiffEqBase.DefaultInit, Nothing, OrdinaryDiffEqCore.PIDControllerCache{Float64, typeof(OrdinaryDiffEqCore.default_dt_factor_limiter), Float64}, Random.TaskLocalRNG, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing}, controller::OrdinaryDiffEqCore.PIDControllerCache{Float64, typeof(OrdinaryDiffEqCore.default_dt_factor_limiter), Float64}, file::HDF5.File)
      @ Trixi ~/work/Trixi.jl/Trixi.jl/src/callbacks_step/save_restart.jl:191
    [3] (::Trixi.var"#1762#1766"{OrdinaryDiffEqCore.ODEIntegrator{OrdinaryDiffEqLowStorageRK.RDPK3SpFSAL49{typeof(OrdinaryDiffEqCore.trivial_limiter!), typeof(OrdinaryDiffEqCore.trivial_limiter!), FastBroadcast.Serial}, true, Vector{Float64}, Nothing, Float64, Trixi.SemidiscretizationHyperbolic{Trixi.TreeMesh{2, Trixi.ParallelTree{2, Float64}, Float64}, Trixi.LinearScalarAdvectionEquation2D{Float64}, typeof(Trixi.initial_condition_convergence_test), Trixi.BoundaryConditionPeriodic, Nothing, Trixi.DGSEM{Trixi.LobattoLegendreBasis{Float64, 4, StaticArraysCore.SVector{4, Float64}, Matrix{Float64}, Matrix{Float64}}, Trixi.LobattoLegendreMortarL2{Float64, 4, Matrix{Float64}, Matrix{Float64}}, Trixi.SurfaceIntegralWeakForm{Trixi.FluxLaxFriedrichs{typeof(Trixi.max_abs_speed)}}, Trixi.VolumeIntegralWeakForm}, @NamedTuple{elements::Trixi.TreeElementContainer2D{Float64, Float64}, interfaces::Trixi.TreeInterfaceContainer2D{Float64}, mpi_interfaces::Trixi.TreeMPIInterfaceContainer2D{Float64}, boundaries::Trixi.TreeBoundaryContainer2D{Float64, Float64}, mortars::Trixi.TreeL2MortarContainer2D{Float64}, mpi_mortars::Trixi.TreeMPIL2MortarContainer2D{Float64}, mpi_cache::Trixi.MPICache{Float64}, fstar_primary_upper_threaded::Vector{StaticArraysCore.MMatrix{1, 4, Float64, 4}}, fstar_primary_lower_threaded::Vector{StaticArraysCore.MMatrix{1, 4, Float64, 4}}, fstar_secondary_upper_threaded::Vector{StaticArraysCore.MMatrix{1, 4, Float64, 4}}, fstar_secondary_lower_threaded::Vector{StaticArraysCore.MMatrix{1, 4, Float64, 4}}}}, Float64, Float64, Vector{Vector{Float64}}, SciMLBase.ODESolution{Float64, 2, Vector{Vector{Float64}}, Nothing, Nothing, Vector{Float64}, Vector{Vector{Vector{Float64}}}, Nothing, SciMLBase.ODEProblem{Vector{Float64}, Tuple{Float64, Float64}, true, Trixi.SemidiscretizationHyperbolic{Trixi.TreeMesh{2, Trixi.ParallelTree{2, Float64}, Float64}, Trixi.LinearScalarAdvectionEquation2D{Float64}, typeof(Trixi.initial_condition_convergence_test), Trixi.BoundaryConditionPeriodic, Nothing, Trixi.DGSEM{Trixi.LobattoLegendreBasis{Float64, 4, StaticArraysCore.SVector{4, Float64}, Matrix{Float64}, Matrix{Float64}}, Trixi.LobattoLegendreMortarL2{Float64, 4, Matrix{Float64}, Matrix{Float64}}, Trixi.SurfaceIntegralWeakForm{Trixi.FluxLaxFriedrichs{typeof(Trixi.max_abs_speed)}}, Trixi.VolumeIntegralWeakForm}, @NamedTuple{elements::Trixi.TreeElementContainer2D{Float64, Float64}, interfaces::Trixi.TreeInterfaceContainer2D{Float64}, mpi_interfaces::Trixi.TreeMPIInterfaceContainer2D{Float64}, boundaries::Trixi.TreeBoundaryContainer2D{Float64, Float64}, mortars::Trixi.TreeL2MortarContainer2D{Float64}, mpi_mortars::Trixi.TreeMPIL2MortarContainer2D{Float64}, mpi_cache::Trixi.MPICache{Float64}, fstar_primary_upper_threaded::Vector{StaticArraysCore.MMatrix{1, 4, Float64, 4}}, fstar_primary_lower_threaded::Vector{StaticArraysCore.MMatrix{1, 4, Float64, 4}}, fstar_secondary_upper_threaded::Vector{StaticArraysCore.MMatrix{1, 4, Float64, 4}}, fstar_secondary_lower_threaded::Vector{StaticArraysCore.MMatrix{1, 4, Float64, 4}}}}, SciMLBase.ODEFunction{true, SciMLBase.FullSpecialize, typeof(Trixi.rhs!), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing, Nothing, Nothing, Nothing}, @Kwargs{}, SciMLBase.StandardODEProblem}, OrdinaryDiffEqLowStorageRK.RDPK3SpFSAL49{typeof(OrdinaryDiffEqCore.trivial_limiter!), typeof(OrdinaryDiffEqCore.trivial_limiter!), FastBroadcast.Serial}, OrdinaryDiffEqCore.InterpolationData{SciMLBase.ODEFunction{true, SciMLBase.FullSpecialize, typeof(Trixi.rhs!), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing, Nothing, Nothing, Nothing}, Vector{Vector{Float64}}, Vector{Float64}, Vector{Vector{Vector{Float64}}}, Nothing, OrdinaryDiffEqLowStorageRK.LowStorageRK3SpFSALCache{Vector{Float64}, Vector{Float64}, Vector{Float64}, OrdinaryDiffEqLowStorageRK.LowStorageRK3SpFSALConstantCache{8, Float64, Float64}, typeof(OrdinaryDiffEqCore.trivial_limiter!), typeof(OrdinaryDiffEqCore.trivial_limiter!), FastBroadcast.Serial}, Nothing}, SciMLBase.DEStats, Nothing, Nothing, Nothing, Nothing}, SciMLBase.ODEFunction{true, SciMLBase.FullSpecialize, typeof(Trixi.rhs!), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing, Nothing, Nothing, Nothing}, OrdinaryDiffEqLowStorageRK.LowStorageRK3SpFSALCache{Vector{Float64}, Vector{Float64}, Vector{Float64}, OrdinaryDiffEqLowStorageRK.LowStorageRK3SpFSALConstantCache{8, Float64, Float64}, typeof(OrdinaryDiffEqCore.trivial_limiter!), typeof(OrdinaryDiffEqCore.trivial_limiter!), FastBroadcast.Serial}, OrdinaryDiffEqCore.DEOptions{Float64, Float64, Float64, Float64, typeof(Trixi.ode_norm), typeof(LinearAlgebra.opnorm), Nothing, SciMLBase.CallbackSet{Tuple{}, Tuple{SciMLBase.DiscreteCallback{typeof(Trixi.summary_callback), typeof(Trixi.summary_callback), Trixi.var"#initialize#1652"{Bool}, typeof(Trixi.finalize_summary_callback), Nothing, Tuple{}}, SciMLBase.DiscreteCallback{Trixi.var"#1658#1665"{Int64}, Trixi.AnalysisCallback{Trixi.LobattoLegendreAnalyzer{Float64, 7, StaticArraysCore.SVector{7, Float64}, Matrix{Float64}}, Tuple{typeof(Trixi.entropy_timederivative), typeof(Trixi.entropy), typeof(Trixi.energy_total)}, StaticArraysCore.SVector{1, Float64}, @NamedTuple{u_local::StrideArraysCore.StaticStrideArray{Float64, 3, (1, 2, 3), Tuple{Static.StaticInt{1}, Static.StaticInt{7}, Static.StaticInt{7}}, Tuple{Nothing, Nothing, Nothing}, Tuple{Static.StaticInt{1}, Static.StaticInt{1}, Static.StaticInt{1}}, 49}, u_tmp1::StrideArraysCore.StaticStrideArray{Float64, 3, (1, 2, 3), Tuple{Static.StaticInt{1}, Static.StaticInt{7}, Static.StaticInt{4}}, Tuple{Nothing, Nothing, Nothing}, Tuple{Static.StaticInt{1}, Static.StaticInt{1}, Static.StaticInt{1}}, 28}, x_local::StrideArraysCore.StaticStrideArray{Float64, 3, (1, 2, 3), Tuple{Static.StaticInt{2}, Static.StaticInt{7}, Static.StaticInt{7}}, Tuple{Nothing, Nothing, Nothing}, Tuple{Static.StaticInt{1}, Static.StaticInt{1}, Static.StaticInt{1}}, 98}, x_tmp1::StrideArraysCore.StaticStrideArray{Float64, 3, (1, 2, 3), Tuple{Static.StaticInt{2}, Static.StaticInt{7}, Static.StaticInt{4}}, Tuple{Nothing, Nothing, Nothing}, Tuple{Static.StaticInt{1}, Static.StaticInt{1}, Static.StaticInt{1}}, 56}}}, typeof(Trixi.initialize!), typeof(SciMLBase.FINALIZE_DEFAULT), Nothing, Tuple{}}, SciMLBase.DiscreteCallback{Trixi.AliveCallback, Trixi.AliveCallback, typeof(Trixi.initialize!), typeof(SciMLBase.FINALIZE_DEFAULT), Nothing, Tuple{}}, SciMLBase.DiscreteCallback{Trixi.SaveRestartCallback, Trixi.SaveRestartCallback, typeof(Trixi.initialize!), typeof(SciMLBase.FINALIZE_DEFAULT), Nothing, Tuple{}}, SciMLBase.DiscreteCallback{Trixi.SaveSolutionCallback{Int64, typeof(Trixi.cons2prim)}, Trixi.SaveSolutionCallback{Int64, typeof(Trixi.cons2prim)}, typeof(Trixi.initialize_save_cb!), typeof(SciMLBase.FINALIZE_DEFAULT), Nothing, Tuple{}}}}, typeof(DiffEqBase.ODE_DEFAULT_ISOUTOFDOMAIN), typeof(DiffEqBase.ODE_DEFAULT_PROG_MESSAGE), typeof(Trixi.ode_unstable_check), DataStructures.BinaryHeap{Float64, DataStructures.FasterForward}, DataStructures.BinaryHeap{Float64, DataStructures.FasterForward}, Nothing, Nothing, Int64, Tuple{}, Tuple{}, Tuple{}, DiffEqBase.DEVerbosity{SciMLLogging.Minimal, SciMLLogging.Minimal, SciMLLogging.WarnLevel, SciMLLogging.WarnLevel, SciMLLogging.WarnLevel, SciMLLogging.WarnLevel, SciMLLogging.WarnLevel, SciMLLogging.WarnLevel, SciMLLogging.Silent, SciMLLogging.Silent, SciMLLogging.Silent, SciMLLogging.Silent, SciMLLogging.Silent, SciMLLogging.Silent, SciMLLogging.WarnLevel, SciMLLogging.Silent, SciMLLogging.Silent, SciMLLogging.Silent, SciMLLogging.WarnLevel, SciMLLogging.Silent, SciMLLogging.WarnLevel, SciMLLogging.WarnLevel, SciMLLogging.Silent, SciMLLogging.Silent, SciMLLogging.Silent, SciMLLogging.Silent, SciMLLogging.Silent, SciMLLogging.Silent, SciMLLogging.Silent, SciMLLogging.Silent, SciMLLogging.Silent, SciMLLogging.Silent}, Nothing}, Vector{Float64}, Float64, Nothing, DiffEqBase.DefaultInit, Nothing, OrdinaryDiffEqCore.PIDControllerCache{Float64, typeof(OrdinaryDiffEqCore.default_dt_factor_limiter), Float64}, Random.TaskLocalRNG, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing}, OrdinaryDiffEqCore.PIDControllerCache{Float64, typeof(OrdinaryDiffEqCore.default_dt_factor_limiter), Float64}})(file::HDF5.File)
      @ Trixi ~/work/Trixi.jl/Trixi.jl/src/callbacks_step/save_restart.jl:186
    [4] (::HDF5.var"#17#18"{HDF5.HDF5Context, @Kwargs{}, Trixi.var"#1762#1766"{OrdinaryDiffEqCore.ODEIntegrator{OrdinaryDiffEqLowStorageRK.RDPK3SpFSAL49{typeof(OrdinaryDiffEqCore.trivial_limiter!), typeof(OrdinaryDiffEqCore.trivial_limiter!), FastBroadcast.Serial}, true, Vector{Float64}, Nothing, Float64, Trixi.SemidiscretizationHyperbolic{Trixi.TreeMesh{2, Trixi.ParallelTree{2, Float64}, Float64}, Trixi.LinearScalarAdvectionEquation2D{Float64}, typeof(Trixi.initial_condition_convergence_test), Trixi.BoundaryConditionPeriodic, Nothing, Trixi.DGSEM{Trixi.LobattoLegendreBasis{Float64, 4, StaticArraysCore.SVector{4, Float64}, Matrix{Float64}, Matrix{Float64}}, Trixi.LobattoLegendreMortarL2{Float64, 4, Matrix{Float64}, Matrix{Float64}}, Trixi.SurfaceIntegralWeakForm{Trixi.FluxLaxFriedrichs{typeof(Trixi.max_abs_speed)}}, Trixi.VolumeIntegralWeakForm}, @NamedTuple{elements::Trixi.TreeElementContainer2D{Float64, Float64}, interfaces::Trixi.TreeInterfaceContainer2D{Float64}, mpi_interfaces::Trixi.TreeMPIInterfaceContainer2D{Float64}, boundaries::Trixi.TreeBoundaryContainer2D{Float64, Float64}, mortars::Trixi.TreeL2MortarContainer2D{Float64}, mpi_mortars::Trixi.TreeMPIL2MortarContainer2D{Float64}, mpi_cache::Trixi.MPICache{Float64}, fstar_primary_upper_threaded::Vector{StaticArraysCore.MMatrix{1, 4, Float64, 4}}, fstar_primary_lower_threaded::Vector{StaticArraysCore.MMatrix{1, 4, Float64, 4}}, fstar_secondary_upper_threaded::Vector{StaticArraysCore.MMatrix{1, 4, Float64, 4}}, fstar_secondary_lower_threaded::Vector{StaticArraysCore.MMatrix{1, 4, Float64, 4}}}}, Float64, Float64, Vector{Vector{Float64}}, SciMLBase.ODESolution{Float64, 2, Vector{Vector{Float64}}, Nothing, Nothing, Vector{Float64}, Vector{Vector{Vector{Float64}}}, Nothing, SciMLBase.ODEProblem{Vector{Float64}, Tuple{Float64, Float64}, true, Trixi.SemidiscretizationHyperbolic{Trixi.TreeMesh{2, Trixi.ParallelTree{2, Float64}, Float64}, Trixi.LinearScalarAdvectionEquation2D{Float64}, typeof(Trixi.initial_condition_convergence_test), Trixi.BoundaryConditionPeriodic, Nothing, Trixi.DGSEM{Trixi.LobattoLegendreBasis{Float64, 4, StaticArraysCore.SVector{4, Float64}, Matrix{Float64}, Matrix{Float64}}, Trixi.LobattoLegendreMortarL2{Float64, 4, Matrix{Float64}, Matrix{Float64}}, Trixi.SurfaceIntegralWeakForm{Trixi.FluxLaxFriedrichs{typeof(Trixi.max_abs_speed)}}, Trixi.VolumeIntegralWeakForm}, @NamedTuple{elements::Trixi.TreeElementContainer2D{Float64, Float64}, interfaces::Trixi.TreeInterfaceContainer2D{Float64}, mpi_interfaces::Trixi.TreeMPIInterfaceContainer2D{Float64}, boundaries::Trixi.TreeBoundaryContainer2D{Float64, Float64}, mortars::Trixi.TreeL2MortarContainer2D{Float64}, mpi_mortars::Trixi.TreeMPIL2MortarContainer2D{Float64}, mpi_cache::Trixi.MPICache{Float64}, fstar_primary_upper_threaded::Vector{StaticArraysCore.MMatrix{1, 4, Float64, 4}}, fstar_primary_lower_threaded::Vector{StaticArraysCore.MMatrix{1, 4, Float64, 4}}, fstar_secondary_upper_threaded::Vector{StaticArraysCore.MMatrix{1, 4, Float64, 4}}, fstar_secondary_lower_threaded::Vector{StaticArraysCore.MMatrix{1, 4, Float64, 4}}}}, SciMLBase.ODEFunction{true, SciMLBase.FullSpecialize, typeof(Trixi.rhs!), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing, Nothing, Nothing, Nothing}, @Kwargs{}, SciMLBase.StandardODEProblem}, OrdinaryDiffEqLowStorageRK.RDPK3SpFSAL49{typeof(OrdinaryDiffEqCore.trivial_limiter!), typeof(OrdinaryDiffEqCore.trivial_limiter!), FastBroadcast.Serial}, OrdinaryDiffEqCore.InterpolationData{SciMLBase.ODEFunction{true, SciMLBase.FullSpecialize, typeof(Trixi.rhs!), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing, Nothing, Nothing, Nothing}, Vector{Vector{Float64}}, Vector{Float64}, Vector{Vector{Vector{Float64}}}, Nothing, OrdinaryDiffEqLowStorageRK.LowStorageRK3SpFSALCache{Vector{Float64}, Vector{Float64}, Vector{Float64}, OrdinaryDiffEqLowStorageRK.LowStorageRK3SpFSALConstantCache{8, Float64, Float64}, typeof(OrdinaryDiffEqCore.trivial_limiter!), typeof(OrdinaryDiffEqCore.trivial_limiter!), FastBroadcast.Serial}, Nothing}, SciMLBase.DEStats, Nothing, Nothing, Nothing, Nothing}, SciMLBase.ODEFunction{true, SciMLBase.FullSpecialize, typeof(Trixi.rhs!), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing, Nothing, Nothing, Nothing}, OrdinaryDiffEqLowStorageRK.LowStorageRK3SpFSALCache{Vector{Float64}, Vector{Float64}, Vector{Float64}, OrdinaryDiffEqLowStorageRK.LowStorageRK3SpFSALConstantCache{8, Float64, Float64}, typeof(OrdinaryDiffEqCore.trivial_limiter!), typeof(OrdinaryDiffEqCore.trivial_limiter!), FastBroadcast.Serial}, OrdinaryDiffEqCore.DEOptions{Float64, Float64, Float64, Float64, typeof(Trixi.ode_norm), typeof(LinearAlgebra.opnorm), Nothing, SciMLBase.CallbackSet{Tuple{}, Tuple{SciMLBase.DiscreteCallback{typeof(Trixi.summary_callback), typeof(Trixi.summary_callback), Trixi.var"#initialize#1652"{Bool}, typeof(Trixi.finalize_summary_callback), Nothing, Tuple{}}, SciMLBase.DiscreteCallback{Trixi.var"#1658#1665"{Int64}, Trixi.AnalysisCallback{Trixi.LobattoLegendreAnalyzer{Float64, 7, StaticArraysCore.SVector{7, Float64}, Matrix{Float64}}, Tuple{typeof(Trixi.entropy_timederivative), typeof(Trixi.entropy), typeof(Trixi.energy_total)}, StaticArraysCore.SVector{1, Float64}, @NamedTuple{u_local::StrideArraysCore.StaticStrideArray{Float64, 3, (1, 2, 3), Tuple{Static.StaticInt{1}, Static.StaticInt{7}, Static.StaticInt{7}}, Tuple{Nothing, Nothing, Nothing}, Tuple{Static.StaticInt{1}, Static.StaticInt{1}, Static.StaticInt{1}}, 49}, u_tmp1::StrideArraysCore.StaticStrideArray{Float64, 3, (1, 2, 3), Tuple{Static.StaticInt{1}, Static.StaticInt{7}, Static.StaticInt{4}}, Tuple{Nothing, Nothing, Nothing}, Tuple{Static.StaticInt{1}, Static.StaticInt{1}, Static.StaticInt{1}}, 28}, x_local::StrideArraysCore.StaticStrideArray{Float64, 3, (1, 2, 3), Tuple{Static.StaticInt{2}, Static.StaticInt{7}, Static.StaticInt{7}}, Tuple{Nothing, Nothing, Nothing}, Tuple{Static.StaticInt{1}, Static.StaticInt{1}, Static.StaticInt{1}}, 98}, x_tmp1::StrideArraysCore.StaticStrideArray{Float64, 3, (1, 2, 3), Tuple{Static.StaticInt{2}, Static.StaticInt{7}, Static.StaticInt{4}}, Tuple{Nothing, Nothing, Nothing}, Tuple{Static.StaticInt{1}, Static.StaticInt{1}, Static.StaticInt{1}}, 56}}}, typeof(Trixi.initialize!), typeof(SciMLBase.FINALIZE_DEFAULT), Nothing, Tuple{}}, SciMLBase.DiscreteCallback{Trixi.AliveCallback, Trixi.AliveCallback, typeof(Trixi.initialize!), typeof(SciMLBase.FINALIZE_DEFAULT), Nothing, Tuple{}}, SciMLBase.DiscreteCallback{Trixi.SaveRestartCallback, Trixi.SaveRestartCallback, typeof(Trixi.initialize!), typeof(SciMLBase.FINALIZE_DEFAULT), Nothing, Tuple{}}, SciMLBase.DiscreteCallback{Trixi.SaveSolutionCallback{Int64, typeof(Trixi.cons2prim)}, Trixi.SaveSolutionCallback{Int64, typeof(Trixi.cons2prim)}, typeof(Trixi.initialize_save_cb!), typeof(SciMLBase.FINALIZE_DEFAULT), Nothing, Tuple{}}}}, typeof(DiffEqBase.ODE_DEFAULT_ISOUTOFDOMAIN), typeof(DiffEqBase.ODE_DEFAULT_PROG_MESSAGE), typeof(Trixi.ode_unstable_check), DataStructures.BinaryHeap{Float64, DataStructures.FasterForward}, DataStructures.BinaryHeap{Float64, DataStructures.FasterForward}, Nothing, Nothing, Int64, Tuple{}, Tuple{}, Tuple{}, DiffEqBase.DEVerbosity{SciMLLogging.Minimal, SciMLLogging.Minimal, SciMLLogging.WarnLevel, SciMLLogging.WarnLevel, SciMLLogging.WarnLevel, SciMLLogging.WarnLevel, SciMLLogging.WarnLevel, SciMLLogging.WarnLevel, SciMLLogging.Silent, SciMLLogging.Silent, SciMLLogging.Silent, SciMLLogging.Silent, SciMLLogging.Silent, SciMLLogging.Silent, SciMLLogging.WarnLevel, SciMLLogging.Silent, SciMLLogging.Silent, SciMLLogging.Silent, SciMLLogging.WarnLevel, SciMLLogging.Silent, SciMLLogging.WarnLevel, SciMLLogging.WarnLevel, SciMLLogging.Silent, SciMLLogging.Silent, SciMLLogging.Silent, SciMLLogging.Silent, SciMLLogging.Silent, SciMLLogging.Silent, SciMLLogging.Silent, SciMLLogging.Silent, SciMLLogging.Silent, SciMLLogging.Silent}, Nothing}, Vector{Float64}, Float64, Nothing, DiffEqBase.DefaultInit, Nothing, OrdinaryDiffEqCore.PIDControllerCache{Float64, typeof(OrdinaryDiffEqCore.default_dt_factor_limiter), Float64}, Random.TaskLocalRNG, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing}, OrdinaryDiffEqCore.PIDControllerCache{Float64, typeof(OrdinaryDiffEqCore.default_dt_factor_limiter), Float64}}, HDF5.File})()
      @ HDF5 ~/.julia/packages/HDF5/8g5ny/src/file.jl:101
    [5] task_local_storage(body::HDF5.var"#17#18"{HDF5.HDF5Context, @Kwargs{}, Trixi.var"#1762#1766"{OrdinaryDiffEqCore.ODEIntegrator{OrdinaryDiffEqLowStorageRK.RDPK3SpFSAL49{typeof(OrdinaryDiffEqCore.trivial_limiter!), typeof(OrdinaryDiffEqCore.trivial_limiter!), FastBroadcast.Serial}, true, Vector{Float64}, Nothing, Float64, Trixi.SemidiscretizationHyperbolic{Trixi.TreeMesh{2, Trixi.ParallelTree{2, Float64}, Float64}, Trixi.LinearScalarAdvectionEquation2D{Float64}, typeof(Trixi.initial_condition_convergence_test), Trixi.BoundaryConditionPeriodic, Nothing, Trixi.DGSEM{Trixi.LobattoLegendreBasis{Float64, 4, StaticArraysCore.SVector{4, Float64}, Matrix{Float64}, Matrix{Float64}}, Trixi.LobattoLegendreMortarL2{Float64, 4, Matrix{Float64}, Matrix{Float64}}, Trixi.SurfaceIntegralWeakForm{Trixi.FluxLaxFriedrichs{typeof(Trixi.max_abs_speed)}}, Trixi.VolumeIntegralWeakForm}, @NamedTuple{elements::Trixi.TreeElementContainer2D{Float64, Float64}, interfaces::Trixi.TreeInterfaceContainer2D{Float64}, mpi_interfaces::Trixi.TreeMPIInterfaceContainer2D{Float64}, boundaries::Trixi.TreeBoundaryContainer2D{Float64, Float64}, mortars::Trixi.TreeL2MortarContainer2D{Float64}, mpi_mortars::Trixi.TreeMPIL2MortarContainer2D{Float64}, mpi_cache::Trixi.MPICache{Float64}, fstar_primary_upper_threaded::Vector{StaticArraysCore.MMatrix{1, 4, Float64, 4}}, fstar_primary_lower_threaded::Vector{StaticArraysCore.MMatrix{1, 4, Float64, 4}}, fstar_secondary_upper_threaded::Vector{StaticArraysCore.MMatrix{1, 4, Float64, 4}}, fstar_secondary_lower_threaded::Vector{StaticArraysCore.MMatrix{1, 4, Float64, 4}}}}, Float64, Float64, Vector{Vector{Float64}}, SciMLBase.ODESolution{Float64, 2, Vector{Vector{Float64}}, Nothing, Nothing, Vector{Float64}, Vector{Vector{Vector{Float64}}}, Nothing, SciMLBase.ODEProblem{Vector{Float64}, Tuple{Float64, Float64}, true, Trixi.SemidiscretizationHyperbolic{Trixi.TreeMesh{2, Trixi.ParallelTree{2, Float64}, Float64}, Trixi.LinearScalarAdvectionEquation2D{Float64}, typeof(Trixi.initial_condition_convergence_test), Trixi.BoundaryConditionPeriodic, Nothing, Trixi.DGSEM{Trixi.LobattoLegendreBasis{Float64, 4, StaticArraysCore.SVector{4, Float64}, Matrix{Float64}, Matrix{Float64}}, Trixi.LobattoLegendreMortarL2{Float64, 4, Matrix{Float64}, Matrix{Float64}}, Trixi.SurfaceIntegralWeakForm{Trixi.FluxLaxFriedrichs{typeof(Trixi.max_abs_speed)}}, Trixi.VolumeIntegralWeakForm}, @NamedTuple{elements::Trixi.TreeElementContainer2D{Float64, Float64}, interfaces::Trixi.TreeInterfaceContainer2D{Float64}, mpi_interfaces::Trixi.TreeMPIInterfaceContainer2D{Float64}, boundaries::Trixi.TreeBoundaryContainer2D{Float64, Float64}, mortars::Trixi.TreeL2MortarContainer2D{Float64}, mpi_mortars::Trixi.TreeMPIL2MortarContainer2D{Float64}, mpi_cache::Trixi.MPICache{Float64}, fstar_primary_upper_threaded::Vector{StaticArraysCore.MMatrix{1, 4, Float64, 4}}, fstar_primary_lower_threaded::Vector{StaticArraysCore.MMatrix{1, 4, Float64, 4}}, fstar_secondary_upper_threaded::Vector{StaticArraysCore.MMatrix{1, 4, Float64, 4}}, fstar_secondary_lower_threaded::Vector{StaticArraysCore.MMatrix{1, 4, Float64, 4}}}}, SciMLBase.ODEFunction{true, SciMLBase.FullSpecialize, typeof(Trixi.rhs!), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing, Nothing, Nothing, Nothing}, @Kwargs{}, SciMLBase.StandardODEProblem}, OrdinaryDiffEqLowStorageRK.RDPK3SpFSAL49{typeof(OrdinaryDiffEqCore.trivial_limiter!), typeof(OrdinaryDiffEqCore.trivial_limiter!), FastBroadcast.Serial}, OrdinaryDiffEqCore.InterpolationData{SciMLBase.ODEFunction{true, SciMLBase.FullSpecialize, typeof(Trixi.rhs!), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing, Nothing, Nothing, Nothing}, Vector{Vector{Float64}}, Vector{Float64}, Vector{Vector{Vector{Float64}}}, Nothing, OrdinaryDiffEqLowStorageRK.LowStorageRK3SpFSALCache{Vector{Float64}, Vector{Float64}, Vector{Float64}, OrdinaryDiffEqLowStorageRK.LowStorageRK3SpFSALConstantCache{8, Float64, Float64}, typeof(OrdinaryDiffEqCore.trivial_limiter!), typeof(OrdinaryDiffEqCore.trivial_limiter!), FastBroadcast.Serial}, Nothing}, SciMLBase.DEStats, Nothing, Nothing, Nothing, Nothing}, SciMLBase.ODEFunction{true, SciMLBase.FullSpecialize, typeof(Trixi.rhs!), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing, Nothing, Nothing, Nothing}, OrdinaryDiffEqLowStorageRK.LowStorageRK3SpFSALCache{Vector{Float64}, Vector{Float64}, Vector{Float64}, OrdinaryDiffEqLowStorageRK.LowStorageRK3SpFSALConstantCache{8, Float64, Float64}, typeof(OrdinaryDiffEqCore.trivial_limiter!), typeof(OrdinaryDiffEqCore.trivial_limiter!), FastBroadcast.Serial}, OrdinaryDiffEqCore.DEOptions{Float64, Float64, Float64, Float64, typeof(Trixi.ode_norm), typeof(LinearAlgebra.opnorm), Nothing, SciMLBase.CallbackSet{Tuple{}, Tuple{SciMLBase.DiscreteCallback{typeof(Trixi.summary_callback), typeof(Trixi.summary_callback), Trixi.var"#initialize#1652"{Bool}, typeof(Trixi.finalize_summary_callback), Nothing, Tuple{}}, SciMLBase.DiscreteCallback{Trixi.var"#1658#1665"{Int64}, Trixi.AnalysisCallback{Trixi.LobattoLegendreAnalyzer{Float64, 7, StaticArraysCore.SVector{7, Float64}, Matrix{Float64}}, Tuple{typeof(Trixi.entropy_timederivative), typeof(Trixi.entropy), typeof(Trixi.energy_total)}, StaticArraysCore.SVector{1, Float64}, @NamedTuple{u_local::StrideArraysCore.StaticStrideArray{Float64, 3, (1, 2, 3), Tuple{Static.StaticInt{1}, Static.StaticInt{7}, Static.StaticInt{7}}, Tuple{Nothing, Nothing, Nothing}, Tuple{Static.StaticInt{1}, Static.StaticInt{1}, Static.StaticInt{1}}, 49}, u_tmp1::StrideArraysCore.StaticStrideArray{Float64, 3, (1, 2, 3), Tuple{Static.StaticInt{1}, Static.StaticInt{7}, Static.StaticInt{4}}, Tuple{Nothing, Nothing, Nothing}, Tuple{Static.StaticInt{1}, Static.StaticInt{1}, Static.StaticInt{1}}, 28}, x_local::StrideArraysCore.StaticStrideArray{Float64, 3, (1, 2, 3), Tuple{Static.StaticInt{2}, Static.StaticInt{7}, Static.StaticInt{7}}, Tuple{Nothing, Nothing, Nothing}, Tuple{Static.StaticInt{1}, Static.StaticInt{1}, Static.StaticInt{1}}, 98}, x_tmp1::StrideArraysCore.StaticStrideArray{Float64, 3, (1, 2, 3), Tuple{Static.StaticInt{2}, Static.StaticInt{7}, Static.StaticInt{4}}, Tuple{Nothing, Nothing, Nothing}, Tuple{Static.StaticInt{1}, Static.StaticInt{1}, Static.StaticInt{1}}, 56}}}, typeof(Trixi.initialize!), typeof(SciMLBase.FINALIZE_DEFAULT), Nothing, Tuple{}}, SciMLBase.DiscreteCallback{Trixi.AliveCallback, Trixi.AliveCallback, typeof(Trixi.initialize!), typeof(SciMLBase.FINALIZE_DEFAULT), Nothing, Tuple{}}, SciMLBase.DiscreteCallback{Trixi.SaveRestartCallback, Trixi.SaveRestartCallback, typeof(Trixi.initialize!), typeof(SciMLBase.FINALIZE_DEFAULT), Nothing, Tuple{}}, SciMLBase.DiscreteCallback{Trixi.SaveSolutionCallback{Int64, typeof(Trixi.cons2prim)}, Trixi.SaveSolutionCallback{Int64, typeof(Trixi.cons2prim)}, typeof(Trixi.initialize_save_cb!), typeof(SciMLBase.FINALIZE_DEFAULT), Nothing, Tuple{}}}}, typeof(DiffEqBase.ODE_DEFAULT_ISOUTOFDOMAIN), typeof(DiffEqBase.ODE_DEFAULT_PROG_MESSAGE), typeof(Trixi.ode_unstable_check), DataStructures.BinaryHeap{Float64, DataStructures.FasterForward}, DataStructures.BinaryHeap{Float64, DataStructures.FasterForward}, Nothing, Nothing, Int64, Tuple{}, Tuple{}, Tuple{}, DiffEqBase.DEVerbosity{SciMLLogging.Minimal, SciMLLogging.Minimal, SciMLLogging.WarnLevel, SciMLLogging.WarnLevel, SciMLLogging.WarnLevel, SciMLLogging.WarnLevel, SciMLLogging.WarnLevel, SciMLLogging.WarnLevel, SciMLLogging.Silent, SciMLLogging.Silent, SciMLLogging.Silent, SciMLLogging.Silent, SciMLLogging.Silent, SciMLLogging.Silent, SciMLLogging.WarnLevel, SciMLLogging.Silent, SciMLLogging.Silent, SciMLLogging.Silent, SciMLLogging.WarnLevel, SciMLLogging.Silent, SciMLLogging.WarnLevel, SciMLLogging.WarnLevel, SciMLLogging.Silent, SciMLLogging.Silent, SciMLLogging.Silent, SciMLLogging.Silent, SciMLLogging.Silent, SciMLLogging.Silent, SciMLLogging.Silent, SciMLLogging.Silent, SciMLLogging.Silent, SciMLLogging.Silent}, Nothing}, Vector{Float64}, Float64, Nothing, DiffEqBase.DefaultInit, Nothing, OrdinaryDiffEqCore.PIDControllerCache{Float64, typeof(OrdinaryDiffEqCore.default_dt_factor_limiter), Float64}, Random.TaskLocalRNG, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing}, OrdinaryDiffEqCore.PIDControllerCache{Float64, typeof(OrdinaryDiffEqCore.default_dt_factor_limiter), Float64}}, HDF5.File}, key::Symbol, val::HDF5.HDF5Context)
      @ Base ./task.jl:304
    [6] h5open(::Trixi.var"#1762#1766"{OrdinaryDiffEqCore.ODEIntegrator{OrdinaryDiffEqLowStorageRK.RDPK3SpFSAL49{typeof(OrdinaryDiffEqCore.trivial_limiter!), typeof(OrdinaryDiffEqCore.trivial_limiter!), FastBroadcast.Serial}, true, Vector{Float64}, Nothing, Float64, Trixi.SemidiscretizationHyperbolic{Trixi.TreeMesh{2, Trixi.ParallelTree{2, Float64}, Float64}, Trixi.LinearScalarAdvectionEquation2D{Float64}, typeof(Trixi.initial_condition_convergence_test), Trixi.BoundaryConditionPeriodic, Nothing, Trixi.DGSEM{Trixi.LobattoLegendreBasis{Float64, 4, StaticArraysCore.SVector{4, Float64}, Matrix{Float64}, Matrix{Float64}}, Trixi.LobattoLegendreMortarL2{Float64, 4, Matrix{Float64}, Matrix{Float64}}, Trixi.SurfaceIntegralWeakForm{Trixi.FluxLaxFriedrichs{typeof(Trixi.max_abs_speed)}}, Trixi.VolumeIntegralWeakForm}, @NamedTuple{elements::Trixi.TreeElementContainer2D{Float64, Float64}, interfaces::Trixi.TreeInterfaceContainer2D{Float64}, mpi_interfaces::Trixi.TreeMPIInterfaceContainer2D{Float64}, boundaries::Trixi.TreeBoundaryContainer2D{Float64, Float64}, mortars::Trixi.TreeL2MortarContainer2D{Float64}, mpi_mortars::Trixi.TreeMPIL2MortarContainer2D{Float64}, mpi_cache::Trixi.MPICache{Float64}, fstar_primary_upper_threaded::Vector{StaticArraysCore.MMatrix{1, 4, Float64, 4}}, fstar_primary_lower_threaded::Vector{StaticArraysCore.MMatrix{1, 4, Float64, 4}}, fstar_secondary_upper_threaded::Vector{StaticArraysCore.MMatrix{1, 4, Float64, 4}}, fstar_secondary_lower_threaded::Vector{StaticArraysCore.MMatrix{1, 4, Float64, 4}}}}, Float64, Float64, Vector{Vector{Float64}}, SciMLBase.ODESolution{Float64, 2, Vector{Vector{Float64}}, Nothing, Nothing, Vector{Float64}, Vector{Vector{Vector{Float64}}}, Nothing, SciMLBase.ODEProblem{Vector{Float64}, Tuple{Float64, Float64}, true, Trixi.SemidiscretizationHyperbolic{Trixi.TreeMesh{2, Trixi.ParallelTree{2, Float64}, Float64}, Trixi.LinearScalarAdvectionEquation2D{Float64}, typeof(Trixi.initial_condition_convergence_test), Trixi.BoundaryConditionPeriodic, Nothing, Trixi.DGSEM{Trixi.LobattoLegendreBasis{Float64, 4, StaticArraysCore.SVector{4, Float64}, Matrix{Float64}, Matrix{Float64}}, Trixi.LobattoLegendreMortarL2{Float64, 4, Matrix{Float64}, Matrix{Float64}}, Trixi.SurfaceIntegralWeakForm{Trixi.FluxLaxFriedrichs{typeof(Trixi.max_abs_speed)}}, Trixi.VolumeIntegralWeakForm}, @NamedTuple{elements::Trixi.TreeElementContainer2D{Float64, Float64}, interfaces::Trixi.TreeInterfaceContainer2D{Float64}, mpi_interfaces::Trixi.TreeMPIInterfaceContainer2D{Float64}, boundaries::Trixi.TreeBoundaryContainer2D{Float64, Float64}, mortars::Trixi.TreeL2MortarContainer2D{Float64}, mpi_mortars::Trixi.TreeMPIL2MortarContainer2D{Float64}, mpi_cache::Trixi.MPICache{Float64}, fstar_primary_upper_threaded::Vector{StaticArraysCore.MMatrix{1, 4, Float64, 4}}, fstar_primary_lower_threaded::Vector{StaticArraysCore.MMatrix{1, 4, Float64, 4}}, fstar_secondary_upper_threaded::Vector{StaticArraysCore.MMatrix{1, 4, Float64, 4}}, fstar_secondary_lower_threaded::Vector{StaticArraysCore.MMatrix{1, 4, Float64, 4}}}}, SciMLBase.ODEFunction{true, SciMLBase.FullSpecialize, typeof(Trixi.rhs!), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing, Nothing, Nothing, Nothing}, @Kwargs{}, SciMLBase.StandardODEProblem}, OrdinaryDiffEqLowStorageRK.RDPK3SpFSAL49{typeof(OrdinaryDiffEqCore.trivial_limiter!), typeof(OrdinaryDiffEqCore.trivial_limiter!), FastBroadcast.Serial}, OrdinaryDiffEqCore.InterpolationData{SciMLBase.ODEFunction{true, SciMLBase.FullSpecialize, typeof(Trixi.rhs!), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing, Nothing, Nothing, Nothing}, Vector{Vector{Float64}}, Vector{Float64}, Vector{Vector{Vector{Float64}}}, Nothing, OrdinaryDiffEqLowStorageRK.LowStorageRK3SpFSALCache{Vector{Float64}, Vector{Float64}, Vector{Float64}, OrdinaryDiffEqLowStorageRK.LowStorageRK3SpFSALConstantCache{8, Float64, Float64}, typeof(OrdinaryDiffEqCore.trivial_limiter!), typeof(OrdinaryDiffEqCore.trivial_limiter!), FastBroadcast.Serial}, Nothing}, SciMLBase.DEStats, Nothing, Nothing, Nothing, Nothing}, SciMLBase.ODEFunction{true, SciMLBase.FullSpecialize, typeof(Trixi.rhs!), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing, Nothing, Nothing, Nothing}, OrdinaryDiffEqLowStorageRK.LowStorageRK3SpFSALCache{Vector{Float64}, Vector{Float64}, Vector{Float64}, OrdinaryDiffEqLowStorageRK.LowStorageRK3SpFSALConstantCache{8, Float64, Float64}, typeof(OrdinaryDiffEqCore.trivial_limiter!), typeof(OrdinaryDiffEqCore.trivial_limiter!), FastBroadcast.Serial}, OrdinaryDiffEqCore.DEOptions{Float64, Float64, Float64, Float64, typeof(Trixi.ode_norm), typeof(LinearAlgebra.opnorm), Nothing, SciMLBase.CallbackSet{Tuple{}, Tuple{SciMLBase.DiscreteCallback{typeof(Trixi.summary_callback), typeof(Trixi.summary_callback), Trixi.var"#initialize#1652"{Bool}, typeof(Trixi.finalize_summary_callback), Nothing, Tuple{}}, SciMLBase.DiscreteCallback{Trixi.var"#1658#1665"{Int64}, Trixi.AnalysisCallback{Trixi.LobattoLegendreAnalyzer{Float64, 7, StaticArraysCore.SVector{7, Float64}, Matrix{Float64}}, Tuple{typeof(Trixi.entropy_timederivative), typeof(Trixi.entropy), typeof(Trixi.energy_total)}, StaticArraysCore.SVector{1, Float64}, @NamedTuple{u_local::StrideArraysCore.StaticStrideArray{Float64, 3, (1, 2, 3), Tuple{Static.StaticInt{1}, Static.StaticInt{7}, Static.StaticInt{7}}, Tuple{Nothing, Nothing, Nothing}, Tuple{Static.StaticInt{1}, Static.StaticInt{1}, Static.StaticInt{1}}, 49}, u_tmp1::StrideArraysCore.StaticStrideArray{Float64, 3, (1, 2, 3), Tuple{Static.StaticInt{1}, Static.StaticInt{7}, Static.StaticInt{4}}, Tuple{Nothing, Nothing, Nothing}, Tuple{Static.StaticInt{1}, Static.StaticInt{1}, Static.StaticInt{1}}, 28}, x_local::StrideArraysCore.StaticStrideArray{Float64, 3, (1, 2, 3), Tuple{Static.StaticInt{2}, Static.StaticInt{7}, Static.StaticInt{7}}, Tuple{Nothing, Nothing, Nothing}, Tuple{Static.StaticInt{1}, Static.StaticInt{1}, Static.StaticInt{1}}, 98}, x_tmp1::StrideArraysCore.StaticStrideArray{Float64, 3, (1, 2, 3), Tuple{Static.StaticInt{2}, Static.StaticInt{7}, Static.StaticInt{4}}, Tuple{Nothing, Nothing, Nothing}, Tuple{Static.StaticInt{1}, Static.StaticInt{1}, Static.StaticInt{1}}, 56}}}, typeof(Trixi.initialize!), typeof(SciMLBase.FINALIZE_DEFAULT), Nothing, Tuple{}}, SciMLBase.DiscreteCallback{Trixi.AliveCallback, Trixi.AliveCallback, typeof(Trixi.initialize!), typeof(SciMLBase.FINALIZE_DEFAULT), Nothing, Tuple{}}, SciMLBase.DiscreteCallback{Trixi.SaveRestartCallback, Trixi.SaveRestartCallback, typeof(Trixi.initialize!), typeof(SciMLBase.FINALIZE_DEFAULT), Nothing, Tuple{}}, SciMLBase.DiscreteCallback{Trixi.SaveSolutionCallback{Int64, typeof(Trixi.cons2prim)}, Trixi.SaveSolutionCallback{Int64, typeof(Trixi.cons2prim)}, typeof(Trixi.initialize_save_cb!), typeof(SciMLBase.FINALIZE_DEFAULT), Nothing, Tuple{}}}}, typeof(DiffEqBase.ODE_DEFAULT_ISOUTOFDOMAIN), typeof(DiffEqBase.ODE_DEFAULT_PROG_MESSAGE), typeof(Trixi.ode_unstable_check), DataStructures.BinaryHeap{Float64, DataStructures.FasterForward}, DataStructures.BinaryHeap{Float64, DataStructures.FasterForward}, Nothing, Nothing, Int64, Tuple{}, Tuple{}, Tuple{}, DiffEqBase.DEVerbosity{SciMLLogging.Minimal, SciMLLogging.Minimal, SciMLLogging.WarnLevel, SciMLLogging.WarnLevel, SciMLLogging.WarnLevel, SciMLLogging.WarnLevel, SciMLLogging.WarnLevel, SciMLLogging.WarnLevel, SciMLLogging.Silent, SciMLLogging.Silent, SciMLLogging.Silent, SciMLLogging.Silent, SciMLLogging.Silent, SciMLLogging.Silent, SciMLLogging.WarnLevel, SciMLLogging.Silent, SciMLLogging.Silent, SciMLLogging.Silent, SciMLLogging.WarnLevel, SciMLLogging.Silent, SciMLLogging.WarnLevel, SciMLLogging.WarnLevel, SciMLLogging.Silent, SciMLLogging.Silent, SciMLLogging.Silent, SciMLLogging.Silent, SciMLLogging.Silent, SciMLLogging.Silent, SciMLLogging.Silent, SciMLLogging.Silent, SciMLLogging.Silent, SciMLLogging.Silent}, Nothing}, Vector{Float64}, Float64, Nothing, DiffEqBase.DefaultInit, Nothing, OrdinaryDiffEqCore.PIDControllerCache{Float64, typeof(OrdinaryDiffEqCore.default_dt_factor_limiter), Float64}, Random.TaskLocalRNG, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing}, OrdinaryDiffEqCore.PIDControllerCache{Float64, typeof(OrdinaryDiffEqCore.default_dt_factor_limiter), Float64}}, ::String, ::Vararg{String}; context::HDF5.HDF5Context, pv::@Kwargs{})
      @ HDF5 ~/.julia/packages/HDF5/8g5ny/src/file.jl:96
    [7] h5open(::Function, ::String, ::String)
      @ HDF5 ~/.julia/packages/HDF5/8g5ny/src/file.jl:94
    [8] load_adaptive_time_integrator!(integrator::OrdinaryDiffEqCore.ODEIntegrator{OrdinaryDiffEqLowStorageRK.RDPK3SpFSAL49{typeof(OrdinaryDiffEqCore.trivial_limiter!), typeof(OrdinaryDiffEqCore.trivial_limiter!), FastBroadcast.Serial}, true, Vector{Float64}, Nothing, Float64, Trixi.SemidiscretizationHyperbolic{Trixi.TreeMesh{2, Trixi.ParallelTree{2, Float64}, Float64}, Trixi.LinearScalarAdvectionEquation2D{Float64}, typeof(Trixi.initial_condition_convergence_test), Trixi.BoundaryConditionPeriodic, Nothing, Trixi.DGSEM{Trixi.LobattoLegendreBasis{Float64, 4, StaticArraysCore.SVector{4, Float64}, Matrix{Float64}, Matrix{Float64}}, Trixi.LobattoLegendreMortarL2{Float64, 4, Matrix{Float64}, Matrix{Float64}}, Trixi.SurfaceIntegralWeakForm{Trixi.FluxLaxFriedrichs{typeof(Trixi.max_abs_speed)}}, Trixi.VolumeIntegralWeakForm}, @NamedTuple{elements::Trixi.TreeElementContainer2D{Float64, Float64}, interfaces::Trixi.TreeInterfaceContainer2D{Float64}, mpi_interfaces::Trixi.TreeMPIInterfaceContainer2D{Float64}, boundaries::Trixi.TreeBoundaryContainer2D{Float64, Float64}, mortars::Trixi.TreeL2MortarContainer2D{Float64}, mpi_mortars::Trixi.TreeMPIL2MortarContainer2D{Float64}, mpi_cache::Trixi.MPICache{Float64}, fstar_primary_upper_threaded::Vector{StaticArraysCore.MMatrix{1, 4, Float64, 4}}, fstar_primary_lower_threaded::Vector{StaticArraysCore.MMatrix{1, 4, Float64, 4}}, fstar_secondary_upper_threaded::Vector{StaticArraysCore.MMatrix{1, 4, Float64, 4}}, fstar_secondary_lower_threaded::Vector{StaticArraysCore.MMatrix{1, 4, Float64, 4}}}}, Float64, Float64, Vector{Vector{Float64}}, SciMLBase.ODESolution{Float64, 2, Vector{Vector{Float64}}, Nothing, Nothing, Vector{Float64}, Vector{Vector{Vector{Float64}}}, Nothing, SciMLBase.ODEProblem{Vector{Float64}, Tuple{Float64, Float64}, true, Trixi.SemidiscretizationHyperbolic{Trixi.TreeMesh{2, Trixi.ParallelTree{2, Float64}, Float64}, Trixi.LinearScalarAdvectionEquation2D{Float64}, typeof(Trixi.initial_condition_convergence_test), Trixi.BoundaryConditionPeriodic, Nothing, Trixi.DGSEM{Trixi.LobattoLegendreBasis{Float64, 4, StaticArraysCore.SVector{4, Float64}, Matrix{Float64}, Matrix{Float64}}, Trixi.LobattoLegendreMortarL2{Float64, 4, Matrix{Float64}, Matrix{Float64}}, Trixi.SurfaceIntegralWeakForm{Trixi.FluxLaxFriedrichs{typeof(Trixi.max_abs_speed)}}, Trixi.VolumeIntegralWeakForm}, @NamedTuple{elements::Trixi.TreeElementContainer2D{Float64, Float64}, interfaces::Trixi.TreeInterfaceContainer2D{Float64}, mpi_interfaces::Trixi.TreeMPIInterfaceContainer2D{Float64}, boundaries::Trixi.TreeBoundaryContainer2D{Float64, Float64}, mortars::Trixi.TreeL2MortarContainer2D{Float64}, mpi_mortars::Trixi.TreeMPIL2MortarContainer2D{Float64}, mpi_cache::Trixi.MPICache{Float64}, fstar_primary_upper_threaded::Vector{StaticArraysCore.MMatrix{1, 4, Float64, 4}}, fstar_primary_lower_threaded::Vector{StaticArraysCore.MMatrix{1, 4, Float64, 4}}, fstar_secondary_upper_threaded::Vector{StaticArraysCore.MMatrix{1, 4, Float64, 4}}, fstar_secondary_lower_threaded::Vector{StaticArraysCore.MMatrix{1, 4, Float64, 4}}}}, SciMLBase.ODEFunction{true, SciMLBase.FullSpecialize, typeof(Trixi.rhs!), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing, Nothing, Nothing, Nothing}, @Kwargs{}, SciMLBase.StandardODEProblem}, OrdinaryDiffEqLowStorageRK.RDPK3SpFSAL49{typeof(OrdinaryDiffEqCore.trivial_limiter!), typeof(OrdinaryDiffEqCore.trivial_limiter!), FastBroadcast.Serial}, OrdinaryDiffEqCore.InterpolationData{SciMLBase.ODEFunction{true, SciMLBase.FullSpecialize, typeof(Trixi.rhs!), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing, Nothing, Nothing, Nothing}, Vector{Vector{Float64}}, Vector{Float64}, Vector{Vector{Vector{Float64}}}, Nothing, OrdinaryDiffEqLowStorageRK.LowStorageRK3SpFSALCache{Vector{Float64}, Vector{Float64}, Vector{Float64}, OrdinaryDiffEqLowStorageRK.LowStorageRK3SpFSALConstantCache{8, Float64, Float64}, typeof(OrdinaryDiffEqCore.trivial_limiter!), typeof(OrdinaryDiffEqCore.trivial_limiter!), FastBroadcast.Serial}, Nothing}, SciMLBase.DEStats, Nothing, Nothing, Nothing, Nothing}, SciMLBase.ODEFunction{true, SciMLBase.FullSpecialize, typeof(Trixi.rhs!), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing, Nothing, Nothing, Nothing}, OrdinaryDiffEqLowStorageRK.LowStorageRK3SpFSALCache{Vector{Float64}, Vector{Float64}, Vector{Float64}, OrdinaryDiffEqLowStorageRK.LowStorageRK3SpFSALConstantCache{8, Float64, Float64}, typeof(OrdinaryDiffEqCore.trivial_limiter!), typeof(OrdinaryDiffEqCore.trivial_limiter!), FastBroadcast.Serial}, OrdinaryDiffEqCore.DEOptions{Float64, Float64, Float64, Float64, typeof(Trixi.ode_norm), typeof(LinearAlgebra.opnorm), Nothing, SciMLBase.CallbackSet{Tuple{}, Tuple{SciMLBase.DiscreteCallback{typeof(Trixi.summary_callback), typeof(Trixi.summary_callback), Trixi.var"#initialize#1652"{Bool}, typeof(Trixi.finalize_summary_callback), Nothing, Tuple{}}, SciMLBase.DiscreteCallback{Trixi.var"#1658#1665"{Int64}, Trixi.AnalysisCallback{Trixi.LobattoLegendreAnalyzer{Float64, 7, StaticArraysCore.SVector{7, Float64}, Matrix{Float64}}, Tuple{typeof(Trixi.entropy_timederivative), typeof(Trixi.entropy), typeof(Trixi.energy_total)}, StaticArraysCore.SVector{1, Float64}, @NamedTuple{u_local::StrideArraysCore.StaticStrideArray{Float64, 3, (1, 2, 3), Tuple{Static.StaticInt{1}, Static.StaticInt{7}, Static.StaticInt{7}}, Tuple{Nothing, Nothing, Nothing}, Tuple{Static.StaticInt{1}, Static.StaticInt{1}, Static.StaticInt{1}}, 49}, u_tmp1::StrideArraysCore.StaticStrideArray{Float64, 3, (1, 2, 3), Tuple{Static.StaticInt{1}, Static.StaticInt{7}, Static.StaticInt{4}}, Tuple{Nothing, Nothing, Nothing}, Tuple{Static.StaticInt{1}, Static.StaticInt{1}, Static.StaticInt{1}}, 28}, x_local::StrideArraysCore.StaticStrideArray{Float64, 3, (1, 2, 3), Tuple{Static.StaticInt{2}, Static.StaticInt{7}, Static.StaticInt{7}}, Tuple{Nothing, Nothing, Nothing}, Tuple{Static.StaticInt{1}, Static.StaticInt{1}, Static.StaticInt{1}}, 98}, x_tmp1::StrideArraysCore.StaticStrideArray{Float64, 3, (1, 2, 3), Tuple{Static.StaticInt{2}, Static.StaticInt{7}, Static.StaticInt{4}}, Tuple{Nothing, Nothing, Nothing}, Tuple{Static.StaticInt{1}, Static.StaticInt{1}, Static.StaticInt{1}}, 56}}}, typeof(Trixi.initialize!), typeof(SciMLBase.FINALIZE_DEFAULT), Nothing, Tuple{}}, SciMLBase.DiscreteCallback{Trixi.AliveCallback, Trixi.AliveCallback, typeof(Trixi.initialize!), typeof(SciMLBase.FINALIZE_DEFAULT), Nothing, Tuple{}}, SciMLBase.DiscreteCallback{Trixi.SaveRestartCallback, Trixi.SaveRestartCallback, typeof(Trixi.initialize!), typeof(SciMLBase.FINALIZE_DEFAULT), Nothing, Tuple{}}, SciMLBase.DiscreteCallback{Trixi.SaveSolutionCallback{Int64, typeof(Trixi.cons2prim)}, Trixi.SaveSolutionCallback{Int64, typeof(Trixi.cons2prim)}, typeof(Trixi.initialize_save_cb!), typeof(SciMLBase.FINALIZE_DEFAULT), Nothing, Tuple{}}}}, typeof(DiffEqBase.ODE_DEFAULT_ISOUTOFDOMAIN), typeof(DiffEqBase.ODE_DEFAULT_PROG_MESSAGE), typeof(Trixi.ode_unstable_check), DataStructures.BinaryHeap{Float64, DataStructures.FasterForward}, DataStructures.BinaryHeap{Float64, DataStructures.FasterForward}, Nothing, Nothing, Int64, Tuple{}, Tuple{}, Tuple{}, DiffEqBase.DEVerbosity{SciMLLogging.Minimal, SciMLLogging.Minimal, SciMLLogging.WarnLevel, SciMLLogging.WarnLevel, SciMLLogging.WarnLevel, SciMLLogging.WarnLevel, SciMLLogging.WarnLevel, SciMLLogging.WarnLevel, SciMLLogging.Silent, SciMLLogging.Silent, SciMLLogging.Silent, SciMLLogging.Silent, SciMLLogging.Silent, SciMLLogging.Silent, SciMLLogging.WarnLevel, SciMLLogging.Silent, SciMLLogging.Silent, SciMLLogging.Silent, SciMLLogging.WarnLevel, SciMLLogging.Silent, SciMLLogging.WarnLevel, SciMLLogging.WarnLevel, SciMLLogging.Silent, SciMLLogging.Silent, SciMLLogging.Silent, SciMLLogging.Silent, SciMLLogging.Silent, SciMLLogging.Silent, SciMLLogging.Silent, SciMLLogging.Silent, SciMLLogging.Silent, SciMLLogging.Silent}, Nothing}, Vector{Float64}, Float64, Nothing, DiffEqBase.DefaultInit, Nothing, OrdinaryDiffEqCore.PIDControllerCache{Float64, typeof(OrdinaryDiffEqCore.default_dt_factor_limiter), Float64}, Random.TaskLocalRNG, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing}, restart_file::String)
      @ Trixi ~/work/Trixi.jl/Trixi.jl/src/callbacks_step/save_restart.jl:175
    [9] top-level scope
      @ ~/work/Trixi.jl/Trixi.jl/examples/tree_2d_dgsem/elixir_advection_restart.jl:39
   [10] trixi_include(mapexpr::typeof(identity), mod::Module, elixir::String; enable_assignment_validation::Bool, replace_assignments_recursive::Bool, kwargs::@Kwargs{alg::OrdinaryDiffEqLowStorageRK.RDPK3SpFSAL49{typeof(OrdinaryDiffEqCore.trivial_limiter!), typeof(OrdinaryDiffEqCore.trivial_limiter!), FastBroadcast.Serial}, base_elixir::String})
      @ TrixiBase ~/.julia/packages/TrixiBase/MGeKl/src/trixi_include.jl:0
   [11] trixi_include
      @ ~/.julia/packages/TrixiBase/MGeKl/src/trixi_include.jl:49 [inlined]
   [12] #trixi_include#6
      @ ~/.julia/packages/TrixiBase/MGeKl/src/trixi_include.jl:86 [inlined]
   [13] macro expansion
      @ ~/work/Trixi.jl/Trixi.jl/test/test_mpi_tree.jl:42 [inlined]
   [14] macro expansion
      @ ~/hostedtoolcache/julia/1.10.11/aarch64/share/julia/stdlib/v1.10/Test/src/Test.jl:1582 [inlined]
   [15] macro expansion
      @ ~/work/Trixi.jl/Trixi.jl/test/test_mpi_tree.jl:27 [inlined]
   [16] top-level scope
      @ ~/.julia/packages/TrixiTest/6CVoC/src/macros.jl:196
   [17] eval(m::Module, e::Any)
      @ Core ./boot.jl:385
   [18] macro expansion
      @ ~/.julia/packages/TrixiTest/6CVoC/src/macros.jl:172 [inlined]
   [19] macro expansion
      @ ~/work/Trixi.jl/Trixi.jl/test/test_mpi_tree.jl:26 [inlined]
   [20] macro expansion
      @ ~/hostedtoolcache/julia/1.10.11/aarch64/share/julia/stdlib/v1.10/Test/src/Test.jl:1582 [inlined]
   [21] macro expansion
      @ ~/work/Trixi.jl/Trixi.jl/test/test_mpi_tree.jl:19 [inlined]
   [22] macro expansion
      @ ~/hostedtoolcache/julia/1.10.11/aarch64/share/julia/stdlib/v1.10/Test/src/Test.jl:1582 [inlined]
   [23] top-level scope
      @ ~/work/Trixi.jl/Trixi.jl/test/test_mpi_tree.jl:17
   [24] include(mod::Module, _path::String)
      @ Base ./Base.jl:495
   [25] include(x::String)
      @ Main.TestExamplesMPI ~/work/Trixi.jl/Trixi.jl/test/test_mpi.jl:1
   [26] macro expansion
      @ ~/work/Trixi.jl/Trixi.jl/test/test_mpi.jl:21 [inlined]
   [27] macro expansion
      @ ~/hostedtoolcache/julia/1.10.11/aarch64/share/julia/stdlib/v1.10/Test/src/Test.jl:1582 [inlined]
   [28] top-level scope
      @ ~/work/Trixi.jl/Trixi.jl/test/test_mpi.jl:21
  in expression starting at /Users/runner/work/Trixi.jl/Trixi.jl/examples/tree_2d_dgsem/elixir_advection_restart.jl:38

@JoshuaLampert
Copy link
Copy Markdown
Member

Yes, that is because for some reason the OrdinaryDiffEqCore.jl extension is not loaded, see https://github.com/trixi-framework/Trixi.jl/actions/runs/25315807694/job/74212954070?pr=2910#step:7:1514.

Content of `stderr`:
Fatal error in internal_Init_thread: Other MPI error, error stack:
internal_Init_thread(71): MPI_Init_thread(argc=0x0, argv=0x0, required=1, provided=0x10a996010) failed
MPII_Init_thread(203)...: 
MPIR_pmi_init(150)......: 
pmi1_init(24)...........: PMI_Get_appnum returned -1
┌ Error: Error during loading of extension TrixiOrdinaryDiffEqCoreExt of Trixi, use `Base.retry_load_extensions()` to retry.
│   exception =1-element ExceptionStack:
│    Failed to precompile TrixiOrdinaryDiffEqCoreExt [7d8822bd-13ad-5232-9571-183eca7c0a3b] to "/Users/runner/.julia/compiled/v1.10/TrixiOrdinaryDiffEqCoreExt/jl_N1hfJh".
│    Stacktrace:
│      [1] error(s::String)
│        @ Base ./error.jl:35
│      [2] compilecache(pkg::Base.PkgId, path::String, internal_stderr::IO, internal_stdout::IO, keep_loaded_modules::Bool; loadable_exts::Vector{Base.PkgId})
│        @ Base ./loading.jl:2547
│      [3] compilecache
│        @ ./loading.jl:2414 [inlined]
│      [4] (::Base.var"#973#974"{Base.PkgId})()
│        @ Base ./loading.jl:2058
│      [5] mkpidlock(f::Base.var"#973#974"{Base.PkgId}, at::String, pid::Int32; kwopts::@Kwargs{stale_age::Int64, wait::Bool})
│        @ FileWatching.Pidfile ~/hostedtoolcache/julia/1.10.11/aarch64/share/julia/stdlib/v1.10/FileWatching/src/pidfile.jl:93
│      [6] #mkpidlock#6
│        @ ~/hostedtoolcache/julia/1.10.11/aarch64/share/julia/stdlib/v1.10/FileWatching/src/pidfile.jl:88 [inlined]
│      [7] trymkpidlock(::Function, ::Vararg{Any}; kwargs::@Kwargs{stale_age::Int64})
│        @ FileWatching.Pidfile ~/hostedtoolcache/julia/1.10.11/aarch64/share/julia/stdlib/v1.10/FileWatching/src/pidfile.jl:111
│      [8] #invokelatest#2
│        @ ./essentials.jl:894 [inlined]
│      [9] invokelatest
│        @ ./essentials.jl:889 [inlined]
│     [10] maybe_cachefile_lock(f::Base.var"#973#974"{Base.PkgId}, pkg::Base.PkgId, srcpath::String; stale_age::Int64)
│        @ Base ./loading.jl:3062
│     [11] maybe_cachefile_lock
│        @ ./loading.jl:3059 [inlined]
│     [12] _require(pkg::Base.PkgId, env::Nothing)
│        @ Base ./loading.jl:2044
│     [13] __require_prelocked(uuidkey::Base.PkgId, env::Nothing)
│        @ Base ./loading.jl:1886
│     [14] #invoke_in_world#3
│        @ ./essentials.jl:926 [inlined]
│     [15] invoke_in_world
│        @ ./essentials.jl:923 [inlined]
│     [16] _require_prelocked
│        @ ./loading.jl:1877 [inlined]
│     [17] _require_prelocked
│        @ ./loading.jl:1876 [inlined]
│     [18] run_extension_callbacks(extid::Base.ExtensionId)
│        @ Base ./loading.jl:1372
│     [19] run_extension_callbacks(pkgid::Base.PkgId)
│        @ Base ./loading.jl:1404
│     [20] run_package_callbacks(modkey::Base.PkgId)
│        @ Base ./loading.jl:1228
│     [21] _tryrequire_from_serialized(modkey::Base.PkgId, path::String, ocachepath::Nothing, sourcepath::String, depmods::Vector{Any})
│        @ Base ./loading.jl:1561
│     [22] _require_search_from_serialized(pkg::Base.PkgId, sourcepath::String, build_id::UInt128)
│        @ Base ./loading.jl:1648
│     [23] _require(pkg::Base.PkgId, env::String)
│        @ Base ./loading.jl:2012
│     [24] __require_prelocked(uuidkey::Base.PkgId, env::String)
│        @ Base ./loading.jl:1886
│     [25] #invoke_in_world#3
│        @ ./essentials.jl:926 [inlined]
│     [26] invoke_in_world
│        @ ./essentials.jl:923 [inlined]
│     [27] _require_prelocked(uuidkey::Base.PkgId, env::String)
│        @ Base ./loading.jl:1877
│     [28] macro expansion
│        @ ./loading.jl:1864 [inlined]
│     [29] macro expansion
│        @ ./lock.jl:270 [inlined]
│     [30] __require(into::Module, mod::Symbol)
│        @ Base ./loading.jl:1827
│     [31] #invoke_in_world#3
│        @ ./essentials.jl:926 [inlined]
│     [32] invoke_in_world
│        @ ./essentials.jl:923 [inlined]
│     [33] require(into::Module, mod::Symbol)
│        @ Base ./loading.jl:1820
│     [34] trixi_include(mapexpr::typeof(identity), mod::Module, elixir::String; enable_assignment_validation::Bool, replace_assignments_recursive::Bool, kwargs::@Kwargs{})
│        @ TrixiBase ~/.julia/packages/TrixiBase/MGeKl/src/trixi_include.jl:0
│     [35] trixi_include
│        @ ~/.julia/packages/TrixiBase/MGeKl/src/trixi_include.jl:49 [inlined]
│     [36] #trixi_include#6
│        @ ~/.julia/packages/TrixiBase/MGeKl/src/trixi_include.jl:86 [inlined]
│     [37] trixi_include
│        @ ~/.julia/packages/TrixiBase/MGeKl/src/trixi_include.jl:85 [inlined]
│     [38] (::Main.TestExamplesMPI.TestExamplesMPITreeMesh.TrixiTestModule.var"#2#4")()
│        @ Main.TestExamplesMPI.TestExamplesMPITreeMesh.TrixiTestModule ~/.julia/packages/TrixiTest/6CVoC/src/macros.jl:15
│     [39] (::Base.RedirectStdStream)(thunk::Main.TestExamplesMPI.TestExamplesMPITreeMesh.TrixiTestModule.var"#2#4", stream::IOStream)
│        @ Base ./stream.jl:1434
│     [40] #1
│        @ ~/.julia/packages/TrixiTest/6CVoC/src/macros.jl:14 [inlined]
│     [41] open(::Main.TestExamplesMPI.TestExamplesMPITreeMesh.TrixiTestModule.var"#1#3", ::String, ::Vararg{String}; kwargs::@Kwargs{})
│        @ Base ./io.jl:396
│     [42] open(::Function, ::String, ::String)
│        @ Base ./io.jl:393
│     [43] macro expansion
│        @ ~/.julia/packages/TrixiTest/6CVoC/src/macros.jl:13 [inlined]
│     [44] macro expansion
│        @ ~/work/Trixi.jl/Trixi.jl/test/test_trixi.jl:35 [inlined]
│     [45] macro expansion
│        @ ~/work/Trixi.jl/Trixi.jl/test/test_mpi_tree.jl:20 [inlined]
│     [46] macro expansion
│        @ ~/hostedtoolcache/julia/1.10.11/aarch64/share/julia/stdlib/v1.10/Test/src/Test.jl:1582 [inlined]
│     [47] macro expansion
│        @ ~/work/Trixi.jl/Trixi.jl/test/test_mpi_tree.jl:20 [inlined]
│     [48] top-level scope
│        @ ~/.julia/packages/TrixiTest/6CVoC/src/macros.jl:196
│     [49] eval(m::Module, e::Any)
│        @ Core ./boot.jl:385
│     [50] macro expansion
│        @ ~/.julia/packages/TrixiTest/6CVoC/src/macros.jl:172 [inlined]
│     [51] macro expansion
│        @ ~/work/Trixi.jl/Trixi.jl/test/test_mpi_tree.jl:19 [inlined]
│     [52] macro expansion
│        @ ~/hostedtoolcache/julia/1.10.11/aarch64/share/julia/stdlib/v1.10/Test/src/Test.jl:1582 [inlined]
│    --- the last 2 lines are repeated 1 more time ---
│     [55] top-level scope
│        @ ~/work/Trixi.jl/Trixi.jl/test/test_mpi_tree.jl:17
│     [56] include(mod::Module, _path::String)
│        @ Base ./Base.jl:495
│     [57] include(x::String)
│        @ Main.TestExamplesMPI ~/work/Trixi.jl/Trixi.jl/test/test_mpi.jl:1
│     [58] macro expansion
│        @ ~/work/Trixi.jl/Trixi.jl/test/test_mpi.jl:21 [inlined]
│     [59] macro expansion
│        @ ~/hostedtoolcache/julia/1.10.11/aarch64/share/julia/stdlib/v1.10/Test/src/Test.jl:1582 [inlined]
│     [60] top-level scope
│        @ ~/work/Trixi.jl/Trixi.jl/test/test_mpi.jl:21
│     [61] include(mod::Module, _path::String)
│        @ Base ./Base.jl:495
│     [62] exec_options(opts::Base.JLOptions)
│        @ Base ./client.jl:316
└ @ Base loading.jl:1378

Content of `stderr`:
[cli_1]: PMIU_write error; fd=10 buf=:cmd=init pmi_version=1 pmi_subversion=1
:
system msg for write_line failure : Bad file descriptor
[cli_1]: PMIU_write error; fd=10 buf=:cmd=abort exitcode=-1 message=PMI_Init failed
:
system msg for write_line failure : Bad file descriptor
[cli_1]: PMIU_write error; fd=10 buf=:cmd=get_appnum
:
system msg for write_line failure : Bad file descriptor

Any idea what is causing this?

@vchuravy
Copy link
Copy Markdown
Member

vchuravy commented May 4, 2026

Any idea what is causing this?

During the precompilation of the package extension we call Trixi.__init__ which in turn calls mpi_init (sigh), but we are within mpiexec so things go haywire.

And we re-trigger precompilation because we use --check-bounds=yes

@JoshuaLampert
Copy link
Copy Markdown
Member

Any idea what is causing this?

During the precompilation of the package extension we call Trixi.__init__ which in turn calls mpi_init (sigh), but we are within mpiexec so things go haywire.

But shouldn't init_mpi just immediately return if MPI has already been initialized?

if MPI_INITIALIZED[]
return nothing
end

@vchuravy
Copy link
Copy Markdown
Member

vchuravy commented May 4, 2026

Precompilation is running in a new isolated process, but it sees the environment variables that the mpi job launcher sets up. So it won't see that the parent process has set that global (but process local) flag.

(I am struggling to reproduce this locally on Archlinux so it might be something specific to how MPI on Mac works)

@JoshuaLampert
Copy link
Copy Markdown
Member

Precompilation is running in a new isolated process, but it sees the environment variables that the mpi job launcher sets up. So it won't see that the parent process has set that global (but process local) flag.

Ah, makes sense. Do you have an idea how to fix it?

@vchuravy
Copy link
Copy Markdown
Member

vchuravy commented May 4, 2026

Ah, makes sense. Do you have an idea how to fix it?

Besides, looking with sad eyes at @sloede and complaining about Trixi initializing MPI, without user consent?

@vchuravy
Copy link
Copy Markdown
Member

vchuravy commented May 4, 2026

Let's see if e55a4d2 helps with anything...

@vchuravy
Copy link
Copy Markdown
Member

vchuravy commented May 4, 2026

Well at least it is now correctly failing instead of hanging:

elixir_advection_restart_amr.jl: Test Failed at /home/runner/.julia/packages/TrixiTest/6CVoC/src/macros.jl:112
  Expression: isapprox(l2_expected, l2_actual, atol = 1.1102230246251565e-13, rtol = 1.4901161193847656e-8)
   Evaluated: isapprox(8.018497923389368e-5, 8.018498574373939e-5; atol = 1.1102230246251565e-13, rtol = 1.4901161193847656e-8)

Stacktrace:
 [1] macro expansion
   @ /opt/hostedtoolcache/julia/1.10.11/x64/share/julia/stdlib/v1.10/Test/src/Test.jl:673 [inlined]
 [2] macro expansion
   @ ~/.julia/packages/TrixiTest/6CVoC/src/macros.jl:112 [inlined]
 [3] macro expansion
   @ ~/work/Trixi.jl/Trixi.jl/test/test_trixi.jl:35 [inlined]
 [4] macro expansion
   @ ~/work/Trixi.jl/Trixi.jl/test/test_mpi_tree.jl:75 [inlined]
 [5] macro expansion
   @ /opt/hostedtoolcache/julia/1.10.11/x64/share/julia/stdlib/v1.10/Test/src/Test.jl:1582 [inlined]
 [6] macro expansion
   @ ~/work/Trixi.jl/Trixi.jl/test/test_mpi_tree.jl:75 [inlined]
 [7] top-level scope
   @ ~/.julia/packages/TrixiTest/6CVoC/src/macros.jl:196
════════════════════════════════════════════════════════════════════════════════════════════════════

@vchuravy
Copy link
Copy Markdown
Member

vchuravy commented May 4, 2026

Of course, this time we didn't run the MPI test in the first place, and it is not ideal that the MPI CI job will be twice as long now, also it looks like some of these tests are not part of the normal CI? I can't find elixir_advection_restart_amr.jl in any other CI definition.

@vchuravy
Copy link
Copy Markdown
Member

vchuravy commented May 4, 2026

That seems to have done it. We could also run --compiled-modules=existing but that flag requires 1.11

@JoshuaLampert
Copy link
Copy Markdown
Member

Looks good. But running the MPI tests twice is not good.

  • Do you or anyone you knows t8code, know if the warnings from t8code like

[t8] WARNING: Trying to use shared memory but intranode and internode communicators are not set. You should call t8_shmem_init before setting the shmem type.
[t8] WARNING: Trying to use shared memory but intranode and internode communicators are not set. You should call t8_shmem_init before initializing a shared memory array.

(see https://github.com/trixi-framework/Trixi.jl/actions/runs/25325340551/job/74244809681?pr=2910#step:7:20206) are something to worry about? These also appear before this PR though.

  • I still find it very strange that the update to OrdinaryDiffEqCore.jl to v3.32 seems to have caused this issue, see fix MPI restart tests #2938. We could bisect OrdinaryDiffEqCore.jl to see, which commit is responsible, but since I never saw the hang locally, I cannot do that. Also what I am still wondering @vchuravy: You managed to reproduce the hang locally by executing the MPI tests, right? I am wondering whether you can already reproduce the hang by only something like
mpiexecjl -n 3 julia +1.10 --project=run -e 'using Trixi; trixi_include("examples/tree_2d_dgsem/elixir_advection_basic.jl")'

because when CI hangs, it looks like it already hangs for the first elixir it tries to run.

  • Finally, we probably still want to figure out why elixir_advection_restart_amr.jl has a slightly different result. I can try to find that out.

@vchuravy
Copy link
Copy Markdown
Member

vchuravy commented May 4, 2026

You managed to reproduce the hang locally by executing the MPI tests, right?

The hangs I reproduced locally all looked like #2990

The other ones seem to be more around the potential precompilation issue with the package extension which I did not manage to reproduce locally.

first elixir it tries to run.

Yeah that feels like a precompilation/loading issue. We could also try a simple: "using Trixi, OrdinaryDiffEqXXX` to just defend against the precompilation issue

@vchuravy
Copy link
Copy Markdown
Member

vchuravy commented May 4, 2026

I still find it very strange that the update to OrdinaryDiffEqCore.jl to v3.32 seems to have caused this issue, see #2938.

Yeah, that's particularly weird since that PR didn't have the extension yet. We don't have the log anymore for the ubuntu run. My other suspicion is that something is leading to a divergence between ranks when a test fails.

@vchuravy
Copy link
Copy Markdown
Member

vchuravy commented May 4, 2026

Hangs on Windows again

@benegee
Copy link
Copy Markdown
Contributor

benegee commented May 4, 2026

* Do you or anyone you knows t8code, know if the warnings from t8code like

[t8] WARNING: Trying to use shared memory but intranode and internode communicators are not set. You should call t8_shmem_init before setting the shmem type.
[t8] WARNING: Trying to use shared memory but intranode and internode communicators are not set. You should call t8_shmem_init before initializing a shared memory array.

As far as I was told it is nothing to worry about. And it will be gone with t8code v4.

@vchuravy
Copy link
Copy Markdown
Member

vchuravy commented May 4, 2026

We also had again on aarch64:

Content of `stderr`:
[cli_1]: PMIU_write error; fd=10 buf=:cmd=init pmi_version=1 pmi_subversion=1
:
system msg for write_line failure : Bad file descriptor
[cli_1]: PMIU_write error; fd=10 buf=:cmd=abort exitcode=-1 message=PMI_Init failed
:
system msg for write_line failure : Bad file descriptor
[cli_1]: PMIU_write error; fd=10 buf=:cmd=get_appnum
:
system msg for write_line failure : Bad file descriptor
Fatal error in internal_Init_thread: Other MPI error, error stack:
internal_Init_thread(71): MPI_Init_thread(argc=0x0, argv=0x0, required=1, provided=0x10af128e0) failed
MPII_Init_thread(203)...: 
MPIR_pmi_init(150)......: 
pmi1_init(24)...........: PMI_Get_appnum returned -1
[cli_1]: PMIU_write error; fd=10 buf=:cmd=abort exitcode=672786959 message=abort
:
system msg for write_line failure : Bad file descriptor
┌ Error: Error during loading of extension TrixiOrdinaryDiffEqCoreExt of Trixi, use `Base.retry_load_extensions()` to retry.
│   exception =
│    1-element ExceptionStack:
│    Failed to precompile TrixiOrdinaryDiffEqCoreExt [7d8822bd-13ad-5232-9571-183eca7c0a3b] to "/Users/runner/.julia/compiled/v1.10/TrixiOrdinaryDiffEqCoreExt/jl_JTWWfv".

Comment on lines +358 to +366
if hasproperty(integrator, :qold)
attributes(file)["time_integrator_qold"] = integrator.qold
elseif hasproperty(controller, :errold)
attributes(file)["time_integrator_qold"] = controller.errold
elseif hasproperty(controller, :qold)
attributes(file)["time_integrator_qold"] = controller.qold
elseif hasproperty(controller, :dt_factor)
attributes(file)["time_integrator_qold"] = controller.dt_factor
end
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Instead if checking for the individual fields, wouldnt it be better (prospectively) to have some store_controller! function, symmetric to the load function? Note that there are more controllers than PI and PID already implemented.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, I think so, too. I also just realized that in OrdinaryDiffEqCore.jl v3.32 and v3.33 the interface is even different to <v3.31, see #2938. So to also support these versions, we need more different case distinctions. I am working on a refactor including a store_controller function defined in the extension.

controller.err[:] = read(attributes(file)["time_integrator_controller_err"])
end

load_controller!(integrator, controller, file)
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We just unpack the controller for the call, so we can encapsulate the "complexity" in the extension behind a load_controller!(integrator, file) call.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

But then we cannot dispatch on the controller (cache) type?

Comment thread test/runtests.jl
Comment on lines +24 to +26
# Trixi automatically initializes MPI, this causes issues if precompilation occurs under MPI.
# The below MPI test uses different compilation flags and thus we want to ensure that precompilation is done with the same flags.
run(`$(Base.julia_cmd()) --threads=1 --check-bounds=yes --heap-size-hint=0.5G -e "using Trixi, OrdinaryDiffEqCore"`)
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A more principled approach is in #2993

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.

5 participants