idaholab / moose

Multiphysics Object Oriented Simulation Environment
https://www.mooseframework.org
GNU Lesser General Public License v2.1
1.76k stars 1.05k forks source link

Recover doesn't work when exodus has execute_on = final #17906

Open lindsayad opened 3 years ago

lindsayad commented 3 years ago

Bug Description

If you try to run a test with --recover but it has execute_on = final for exodus, then you get an error like:

Error opening ExodusII mesh file: rotated-2d-bkt-function-porosity-mixed_out.e
Stack frames: 20
0: libMesh::print_trace(std::ostream&)
1: libMesh::MacroFunctions::report_error(char const*, int, char const*, char const*)
2: libMesh::ExodusII_IO_Helper::open(char const*, bool)
3: libMesh::ExodusII_IO::write_nodal_data_common(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, bool)
4: libMesh::ExodusII_IO::write_nodal_data(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<double, std::allocator<double> > const&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&)
5: libMesh::MeshOutput<libMesh::MeshBase>::write_equation_systems(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, libMesh::EquationSystems const&, std::set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const*)
6: libMesh::ExodusII_IO::write_timestep(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, libMesh::EquationSystems const&, int, double, std::set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const*)
7: Exodus::outputEmptyTimestep()
8: Exodus::outputElementalVariables()
9: AdvancedOutput::output(MooseEnumItem const&)
10: Exodus::output(MooseEnumItem const&)
11: OversampleOutput::outputStep(MooseEnumItem const&)
12: OutputWarehouse::outputStep(MooseEnumItem)
13: FEProblemBase::outputStep(MooseEnumItem)
14: Transient::execute()
15: MooseApp::executeExecutioner()
16: MooseApp::run()
17: /home/lindad/projects/moose/modules/navier_stokes/navier_stokes-devel(+0x43ad) [0x56224d8da3ad]
18: __libc_start_main
19: /home/lindad/projects/moose/modules/navier_stokes/navier_stokes-devel(+0x463d) [0x56224d8da63d]
[0] /home/lindad/projects/moose/scripts/../libmesh/src/mesh/exodusII_io_helper.C, line 523, compiled nodate at notime
application called MPI_Abort(MPI_COMM_WORLD, 1) - process 0
[unset]: write_line error; fd=-1 buf=:cmd=abort exitcode=1
:
system msg for write_line failure : Bad file descriptor

Exit Code: 1
################################################################################
Tester failed, reason: CRASH

when trying to output after part 2.

Steps to Reproduce

Outlined above

Impact

Users get a tester error, the reason for which is a bit hard to puzzle out.

GiudGiud commented 2 years ago

oh just hit that