#1888: HDF5 output causing termination with std::out_of_range error ---------------------------+------------------------------------------------ Reporter: barry.wardell | Owner: eschnett Type: defect | Status: new Priority: unset | Milestone: Component: Carpet | Version: development version Keywords: | ---------------------------+------------------------------------------------ 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/Sim... bbh.par].
#1888: HDF5 output causing termination with std::out_of_range error ----------------------------+----------------------------------------------- Reporter: barry.wardell | Owner: eschnett Type: defect | Status: accepted Priority: unset | Milestone: Component: Carpet | Version: development version Resolution: | Keywords: ----------------------------+----------------------------------------------- Changes (by eschnett):
* status: new => accepted
Comment:
I can reproduce the problem with a simple parameter file. It seems to be related to lower-dimensional HDF5 output.
#1888: HDF5 output causing termination with std::out_of_range error ----------------------------+----------------------------------------------- Reporter: barry.wardell | Owner: eschnett Type: defect | Status: accepted Priority: major | Milestone: Component: Carpet | Version: development version Resolution: | Keywords: ----------------------------+----------------------------------------------- Changes (by eschnett):
* priority: unset => major
#1888: HDF5 output causing termination with std::out_of_range error ----------------------------+----------------------------------------------- Reporter: barry.wardell | Owner: eschnett Type: defect | Status: accepted Priority: major | Milestone: Component: Carpet | Version: development version Resolution: | Keywords: ----------------------------+-----------------------------------------------
Comment (by eschnett):
I pushed a correction.
#1888: HDF5 output causing termination with std::out_of_range error ----------------------------+----------------------------------------------- Reporter: barry.wardell | Owner: eschnett Type: defect | Status: closed Priority: major | Milestone: Component: Carpet | Version: development version Resolution: fixed | Keywords: ----------------------------+----------------------------------------------- Changes (by eschnett):
* status: accepted => closed * resolution: => fixed
trac@lists.einsteintoolkit.org