You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
TrilinosWrappers::SolverDirect crashes with segfault on destruction if the matrix it was initialized with does not exist anymore. The same problem occurs while calling initialize (if SolverDirect was previously initialized).
I only noticed this behavior with Amesos_Mumps, Amesos_Klu works fine. For this reason, the problem was particularly hard to locate in larger project. It would be nice to have some assertion to catch that an output meaningful message.
I don't have a good idea how to improve that, maybe we can try catching an exception when resenting the internal unique_ptr storing the Trilinos solver.
The text was updated successfully, but these errors were encountered:
Do you think you can come up with a small test case that shows this?
The way we often deal with this is that we keep pointers to objects such as SparseMatrix via SmartPointer. If you delete the matrix while something else still points to it, you'll get an error message.
I also came across this recently. I'm not sure whether we can fix this in deal.II as either Mumps or Amesos keeps a pointer to the original matrix, so the change would have to be done there I suppose.
Also afaik a segfault cannot be caught from inside the program, so I guess it would be hard to catch.
TrilinosWrappers::SolverDirect crashes with segfault on destruction if the matrix it was initialized with does not exist anymore. The same problem occurs while calling initialize (if SolverDirect was previously initialized).
I only noticed this behavior with Amesos_Mumps, Amesos_Klu works fine. For this reason, the problem was particularly hard to locate in larger project. It would be nice to have some assertion to catch that an output meaningful message.
I don't have a good idea how to improve that, maybe we can try catching an exception when resenting the internal unique_ptr storing the Trilinos solver.
The text was updated successfully, but these errors were encountered: