HDF5 output causing termination with std::out_of_range error

Create issue
Issue #1888 closed
Barry Wardell created an issue

I am getting an std::out_of_range error when I try to run a simulation with the latest development version of the Einstein Toolkit. Specifically, the error I am getting is:

terminate called after throwing an instance of 'std::out_of_range'
what():  vector::_M_range_check

The backtrace provides more detailed information:

Backtrace from rank 0 pid 3146:
1. CarpetLib::signal_handler(int)   [/ichec/work/ucd01/bwardell/EinsteinToolkit/bbh/SIMFACTORY/exe/cactus_sim(_ZN9CarpetLib14signal_handlerEi+0x8e) [0x12a24de]]
2. /lib64/libc.so.6(+0x32920) [0x2aaab2e53920]
3. /lib64/libc.so.6(gsignal+0x35) [0x2aaab2e53885]
4. /lib64/libc.so.6(abort+0x181) [0x2aaab2e54e61]
5. __gnu_cxx::__verbose_terminate_handler()   [/usr/lib64/libstdc++.so.6(_ZN9__gnu_cxx27__verbose_terminate_handlerEv+0x11d) [0x2aaab29698ad]]
6. /usr/lib64/libstdc++.so.6(+0x63986) [0x2aaab2967986]
7. /usr/lib64/libstdc++.so.6(+0x639b3) [0x2aaab29679b3]
8. /usr/lib64/libstdc++.so.6(+0x63bf3) [0x2aaab2967bf3]
9. std::__throw_out_of_range(char const*)   [/usr/lib64/libstdc++.so.6(_ZSt20__throw_out_of_rangePKc+0x5d) [0x2aaab29b92cd]]
a. CarpetIOHDF5::IOHDF5<1>::WriteHDF5(_cGH const*, int&, int&, std::vector<gdata*, std::allocator<gdata*> >, bbox<int, 3> const&, int, vect<int, 3> const&, vect<int, 1> const&, int, int, int, int
, int, int, double, vect<double, 3> const&, vect<double, 3> const&)   [/ichec/work/ucd01/bwardell/EinsteinToolkit/bbh/SIMFACTORY/exe/cactus_sim(_ZN12CarpetIOHDF56IOHDF5ILi1EE9WriteHDF5EPK4_cGHRiS
5_St6vectorIP5gdataSaIS8_EERK4bboxIiLi3EEiRK4vectIiLi3EERKSF_IiLi1EEiiiiiidRKSF_IdLi3EESO_+0x2516) [0x123d526]]
b. CarpetIOHDF5::IOHDF5<1>::OutputDirection(_cGH const*, int, std::string, std::string, vect<int, 1> const&, bool, bool)   [/ichec/work/ucd01/bwardell/EinsteinToolkit/bbh/SIMFACTORY/exe/cactus_si
m(_ZN12CarpetIOHDF56IOHDF5ILi1EE15OutputDirectionEPK4_cGHiSsSsRK4vectIiLi1EEbb+0xf28) [0x1239378]]
c. CarpetIOHDF5::IOHDF5<1>::OutputVarAs(_cGH const*, char const*, char const*)   [/ichec/work/ucd01/bwardell/EinsteinToolkit/bbh/SIMFACTORY/exe/cactus_sim(_ZN12CarpetIOHDF56IOHDF5ILi1EE11OutputVa
rAsEPK4_cGHPKcS6_+0x4a4) [0x1237004]]
d. CarpetIOHDF5::IOHDF5<1>::TriggerOutput(_cGH const*, int)   [/ichec/work/ucd01/bwardell/EinsteinToolkit/bbh/SIMFACTORY/exe/cactus_sim(_ZN12CarpetIOHDF56IOHDF5ILi1EE13TriggerOutputEPK4_cGHi+0x1b
3) [0x1236a23]]
e. CarpetIOHDF5::IOHDF5<1>::OutputGH(_cGH const*)   [/ichec/work/ucd01/bwardell/EinsteinToolkit/bbh/SIMFACTORY/exe/cactus_sim(_ZN12CarpetIOHDF56IOHDF5ILi1EE8OutputGHEPK4_cGH+0x368) [0x1236568]]
f. Carpet::OutputGH(_cGH const*)   [/ichec/work/ucd01/bwardell/EinsteinToolkit/bbh/SIMFACTORY/exe/cactus_sim(_ZN6Carpet8OutputGHEPK4_cGH+0x6cb) [0x1136d1b]]
10. /ichec/work/ucd01/bwardell/EinsteinToolkit/bbh/SIMFACTORY/exe/cactus_sim() [0x1132cf1]
11. Carpet::Initialise(tFleshConfig*)   [/ichec/work/ucd01/bwardell/EinsteinToolkit/bbh/SIMFACTORY/exe/cactus_sim(_ZN6Carpet10InitialiseEP12tFleshConfig+0x767) [0x1134b17]]
12. /ichec/work/ucd01/bwardell/EinsteinToolkit/bbh/SIMFACTORY/exe/cactus_sim(main+0x99) [0x3b2ed29]
13. /lib64/libc.so.6(__libc_start_main+0xe6) [0x2aaab2e3fc36]
14. /ichec/work/ucd01/bwardell/EinsteinToolkit/bbh/SIMFACTORY/exe/cactus_sim() [0xd3a609]

This suggests the problem is in CarpetIOHDF5, and indeed reverting Carpet commit cf2e12631ed9b6e1eac95ae5f311fdbe5100db75 makes the problem go away.

The parameter file I am using is this one: [https://bitbucket.org/simulationtools/simulationtoolstestdata/src/master/Simulations/bbh/SIMFACTORY/par/bbh.par bbh.par].

Keyword:

Comments (5)

  1. Erik Schnetter
    • changed status to open
    • removed comment

    I can reproduce the problem with a simple parameter file. It seems to be related to lower-dimensional HDF5 output.

  2. Log in to comment