Problem in C++, program state has been reset

Hello,
I am trying to run my analysis code and I have defined some new histograms as a modification in my code. It is compiling but crashing when I try to run it using a python script, with the error - problem in C++, program state has been reset .
Below is the entire stack trace, I cannot seem to figure out what is going wrong here -
0x00007f0e74bd2ee5 in TInstrumentedIsAProxy::operator()(void const*) () from /cvmfs/atlas.cern.ch/repo/sw/software/21.2/AnalysisBaseExternals/21.2.13/InstallArea/x86_64-slc6-gcc62-opt/bin/…/lib/libHist.so
#6 0x00007f0e84748e57 in TClass::GetActualClass(void const*) const () from /cvmfs/atlas.cern.ch/repo/sw/software/21.2/AnalysisBaseExternals/21.2.13/InstallArea/x86_64-slc6-gcc62-opt/bin/…/lib/libCore.so
#7 0x00007f0e84dc1dfd in TBufferFile::WriteObjectAny(void const*, TClass const*) () from /cvmfs/atlas.cern.ch/repo/sw/software/21.2/AnalysisBaseExternals/21.2.13/InstallArea/x86_64-slc6-gcc62-opt/bin/…/lib/libRIO.so
#8 0x00007f0e84dc13b0 in TBufferFile::WriteFastArray(void**, TClass const*, int, bool, TMemberStreamer*) () from /cvmfs/atlas.cern.ch/repo/sw/software/21.2/AnalysisBaseExternals/21.2.13/InstallArea/x86_64-slc6-gcc62-opt/bin/…/lib/libRIO.so
#9 0x00007f0e84f4e9ea in int TStreamerInfo::WriteBufferAux<char**>(TBuffer&, char** const&, TStreamerInfo::TCompInfo* const*, int, int, int, int, int) () from /cvmfs/atlas.cern.ch/repo/sw/software/21.2/AnalysisBaseExternals/21.2.13/InstallArea/x86_64-slc6-gcc62-opt/bin/…/lib/libRIO.so
#10 0x00007f0e84e3b5dd in TStreamerInfoActions::GenericWriteAction(TBuffer&, void*, TStreamerInfoActions::TConfiguration const*) () from /cvmfs/atlas.cern.ch/repo/sw/software/21.2/AnalysisBaseExternals/21.2.13/InstallArea/x86_64-slc6-gcc62-opt/bin/…/lib/libRIO.so
#11 0x00007f0e84dc0f25 in TBufferFile::ApplySequence(TStreamerInfoActions::TActionSequence const&, void*) () from /cvmfs/atlas.cern.ch/repo/sw/software/21.2/AnalysisBaseExternals/21.2.13/InstallArea/x86_64-slc6-gcc62-opt/bin/…/lib/libRIO.so
#12 0x00007f0e84dc346a in TBufferFile::WriteClassBuffer(TClass const*, void*) () from /cvmfs/atlas.cern.ch/repo/sw/software/21.2/AnalysisBaseExternals/21.2.13/InstallArea/x86_64-slc6-gcc62-opt/bin/…/lib/libRIO.so
#13 0x00007f0e8469dae7 in TDirectory::CloneObject(TObject const*, bool) () from /cvmfs/atlas.cern.ch/repo/sw/software/21.2/AnalysisBaseExternals/21.2.13/InstallArea/x86_64-slc6-gcc62-opt/bin/…/lib/libCore.so
#14 0x00007f0e846b369d in TNamed::Clone(char const*) const () from /cvmfs/atlas.cern.ch/repo/sw/software/21.2/AnalysisBaseExternals/21.2.13/InstallArea/x86_64-slc6-gcc62-opt/bin/…/lib/libCore.so
#15 0x00007f0e72c045f2 in EL::Job::Job(EL::Job const&) () from /cvmfs/atlas.cern.ch/repo/sw/software/21.2/AnalysisBase/21.2.13/InstallArea/x86_64-slc6-gcc62-opt/lib/libEventLoop.so
#16 0x00007f0e72bfe950 in EL::Driver::submitOnly(EL::Job const&, std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&) const () from /cvmfs/atlas.cern.ch/repo/sw/software/21.2/AnalysisBase/21.2.13/InstallArea/x86_64-slc6-gcc62-opt/lib/libEventLoop.so
#17 0x00007f0e72bff769 in EL::Driver::submit(EL::Job const&, std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&) const () from /cvmfs/atlas.cern.ch/repo/sw/software/21.2/AnalysisBase/21.2.13/InstallArea/x86_64-slc6-gcc62-opt/lib/libEventLoop.so
Traceback (most recent call last):
File “LHRun.py”, line 502, in
main(options,args)
File “LHRun.py”, line 97, in main
submitELJob(options, job, submitDir)
File “/afs/cern.ch/user/s/ssaha/ssaha/build/x86_64-slc6-gcc62-opt/python/TagAndProbeFrame/Helpers.py”, line 259, in submitELJob
driver.submit(job, submitDir)
SystemError: void EL::Driver::submit(const EL::Job& job, const string& location) =>
problem in C++; program state has been reset

Any help is appreciated.
Thank you

This error seems to be about something outside of ROOT (probably in EL::Driver).

The printed stack trace is generated by ROOT on segfault and reads from innermost to outermost frame (i.e. opposite of what Python does), and python points no further than the last Python call, i.e. first (outermost) C++ call, as that is all it sees. Thus, the segfault originates in: “TInstrumentedIsAProxy::operator()(void const*) ()” in libHist.so.

Might still be a local problem (missing dictionary or wrong version of one), but this is deep down in ROOT after entering I/O.

Hi all,
Thank you for the hints, I had to add //! after initializing the histos, it is solved now.
Thank you

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.