ROOT Crashing when creating TBrowser object


| Welcome to ROOT 6.04/04 http://root.cern.ch |
| © 1995-2014, The ROOT Team |
| Built for linux |
| From tag , 8 October 2015 |

Try ‘.help’, ‘.demo’, ‘.license’, ‘.credits’, ‘.quit’/’.q’

A really strange problem I had today.

ROOT began crashing whenever I attach a file and trying to do TBrowser obj. The same file opens well in other machines, no issues, the file is not corrupt. Checked with other files and its the same,

root -l someFile.root
TBrowser b // Crashes

is it because you changed ROOT version ? note that the current one is 6:10

Not sure, I have been using it for a long time and it was really stable. Sadly it broke today. What I noticed was the program runs in -b -q mode, reads/writes to root files without problems. The issue happens only when
TBrowser b is executed

That’s weird this happens suddenly … something must have change …
Can you post the result of the crash ?

I did a few updates, otherwise root has been the same as before.

root [0] 
Attaching file testFile.root as _file0...
(class TFile *) 0x93b3130
root [1] TBrowser b

 *** Break *** segmentation violation



===========================================================
There was a crash (#7 0xb75cc0c8 in SigHandler(ESignals) () from /home/thoma/Packages/root-6.04.04/lib/libCore.so).
This is the entire stack trace of all threads:
===========================================================
#0  0xb771ad40 in __kernel_vsyscall ()
#1  0xb711dab3 in __waitpid_nocancel () at ../sysdeps/unix/syscall-template.S:81
#2  0xb70a502e in do_system (line=line
entry=0x99cb660 "/home/thoma/Packages/root-6.04.04/etc/gdb-backtrace.sh 31421 1>&2") at ../sysdeps/posix/system.c:148
#3  0xb70a5400 in __libc_system (line=line
entry=0x99cb660 "/home/thoma/Packages/root-6.04.04/etc/gdb-backtrace.sh 31421 1>&2") at ../sysdeps/posix/system.c:184
#4  0xb7222bdb in system (line=0x99cb660 "/home/thoma/Packages/root-6.04.04/etc/gdb-backtrace.sh 31421 1>&2") at pt-system.c:28
#5  0xb75c9c84 in TUnixSystem::StackTrace() () from /home/thoma/Packages/root-6.04.04/lib/libCore.so
#6  0xb75cbf6b in TUnixSystem::DispatchSignals(ESignals) () from /home/thoma/Packages/root-6.04.04/lib/libCore.so
#7  0xb75cc0c8 in SigHandler(ESignals) () from /home/thoma/Packages/root-6.04.04/lib/libCore.so
#8  0xb75c62d3 in sighandler(int) () from /home/thoma/Packages/root-6.04.04/lib/libCore.so
#9  0xb75fb956 in textinput::TerminalConfigUnix::HandleSignal(int) () from /home/thoma/Packages/root-6.04.04/lib/libCore.so
#10 0xb75fb9a1 in (anonymous namespace)::TerminalConfigUnix__handleSignal(int) () from /home/thoma/Packages/root-6.04.04/lib/libCore.so
#11 <signal handler called>
#12 __GI___libc_free (mem=0x998858) at malloc.c:2929
#13 0xb7295e68 in operator delete(void*) () from /usr/lib/i386-linux-gnu/libstdc++.so.6
#14 0xb7295ea8 in operator delete[](void*) () from /usr/lib/i386-linux-gnu/libstdc++.so.6
#15 0xb753bd10 in TString::~TString() () from /home/thoma/Packages/root-6.04.04/lib/libCore.so
#16 0xae176171 in TGCommandPlugin::TGCommandPlugin(TGWindow const*, unsigned int, unsigned int) () from /home/thoma/Packages/root-6.04.04/lib/libGui.so
#17 0xaefba04c in ?? ()
#18 0xb4ca384e in cling::Interpreter::RunFunction(clang::FunctionDecl const*, cling::Value*) () from /home/thoma/Packages/root-6.04.04/lib/libCling.so
#19 0xb4ca87c8 in cling::Interpreter::EvaluateInternal(std::string const&, cling::CompilationOptions, cling::Value*, cling::Transaction**) () from /home/thoma/Packages/root-6.04.04/lib/libCling.so
#20 0xb4ca8a15 in cling::Interpreter::process(std::string const&, cling::Value*, cling::Transaction**) () from /home/thoma/Packages/root-6.04.04/lib/libCling.so
#21 0xb4d6d943 in cling::MetaProcessor::process(char const*, cling::Interpreter::CompilationResult&, cling::Value*) () from /home/thoma/Packages/root-6.04.04/lib/libCling.so
#22 0xb4c2161b in TCling::ProcessLine(char const*, TInterpreter::EErrorCode*) () from /home/thoma/Packages/root-6.04.04/lib/libCling.so
#23 0xb7521924 in TApplication::ProcessLine(char const*, bool, int*) () from /home/thoma/Packages/root-6.04.04/lib/libCore.so
#24 0xb7554bee in TROOT::ProcessLine(char const*, int*) () from /home/thoma/Packages/root-6.04.04/lib/libCore.so
#25 0xae17dc4a in TRootBrowser::ExecPlugin(char const*, char const*, char const*, int, int) () from /home/thoma/Packages/root-6.04.04/lib/libGui.so
#26 0xae17d27a in TRootBrowser::InitPlugins(char const*) () from /home/thoma/Packages/root-6.04.04/lib/libGui.so
#27 0xae17d48c in TRootBrowser::TRootBrowser(TBrowser*, char const*, unsigned int, unsigned int, char const*, bool) () from /home/thoma/Packages/root-6.04.04/lib/libGui.so
#28 0xae17d59a in TRootBrowser::NewBrowser(TBrowser*, char const*, unsigned int, unsigned int, char const*) () from /home/thoma/Packages/root-6.04.04/lib/libGui.so
#29 0xae045278 in ?? ()
#30 0xb4c3bb6c in TClingCallFunc::exec(void*, void*) const () from /home/thoma/Packages/root-6.04.04/lib/libCling.so
#31 0xb4c3ca17 in TClingCallFunc::exec_with_valref_return(void*, cling::Value*) const () from /home/thoma/Packages/root-6.04.04/lib/libCling.so
#32 0xb4c487d7 in TClingCallFunc::ExecInt(void*) () from /home/thoma/Packages/root-6.04.04/lib/libCling.so
#33 0xb4bf963c in TCling::CallFunc_ExecInt(CallFunc_t*, void*) const () from /home/thoma/Packages/root-6.04.04/lib/libCling.so
#34 0xb758fdc0 in TMethodCall::Execute(void*, long&) () from /home/thoma/Packages/root-6.04.04/lib/libCore.so
#35 0xae256718 in TRootGuiFactory::CreateBrowserImp(TBrowser*, char const*, unsigned int, unsigned int, char const*) () from /home/thoma/Packages/root-6.04.04/lib/libGui.so
#36 0xb750b366 in TBrowser::TBrowser(char const*, char const*, TBrowserImp*, char const*) () from /home/thoma/Packages/root-6.04.04/lib/libCore.so
#37 0xaf00c032 in ?? ()
#38 0xaf00c06b in ?? ()
#39 0xb4cf7499 in cling::IncrementalExecutor::runStaticInitializersOnce(cling::Transaction const&) () from /home/thoma/Packages/root-6.04.04/lib/libCling.so
#40 0xb4ca4569 in cling::Interpreter::executeTransaction(cling::Transaction&) () from /home/thoma/Packages/root-6.04.04/lib/libCling.so
#41 0xb4cc8945 in cling::IncrementalParser::commitTransaction(llvm::PointerIntPair<cling::Transaction*, 2u, cling::IncrementalParser::EParseResult, llvm::PointerLikeTypeTraits<cling::Transaction*> >) () from /home/thoma/Packages/root-6.04.04/lib/libCling.so
#42 0xb4cca80a in cling::IncrementalParser::Compile(llvm::StringRef, cling::CompilationOptions const&) () from /home/thoma/Packages/root-6.04.04/lib/libCling.so
#43 0xb4ca86c6 in cling::Interpreter::EvaluateInternal(std::string const&, cling::CompilationOptions, cling::Value*, cling::Transaction**) () from /home/thoma/Packages/root-6.04.04/lib/libCling.so
#44 0xb4ca8a15 in cling::Interpreter::process(std::string const&, cling::Value*, cling::Transaction**) () from /home/thoma/Packages/root-6.04.04/lib/libCling.so
#45 0xb4d6d943 in cling::MetaProcessor::process(char const*, cling::Interpreter::CompilationResult&, cling::Value*) () from /home/thoma/Packages/root-6.04.04/lib/libCling.so
#46 0xb4c2161b in TCling::ProcessLine(char const*, TInterpreter::EErrorCode*) () from /home/thoma/Packages/root-6.04.04/lib/libCling.so
#47 0xb7521924 in TApplication::ProcessLine(char const*, bool, int*) () from /home/thoma/Packages/root-6.04.04/lib/libCore.so
#48 0xb7377dd2 in TRint::ProcessLineNr(char const*, char const*, int*) () from /home/thoma/Packages/root-6.04.04/lib/libRint.so
#49 0xb7378085 in TRint::HandleTermInput() () from /home/thoma/Packages/root-6.04.04/lib/libRint.so
#50 0xb7377620 in TTermInputHandler::Notify() () from /home/thoma/Packages/root-6.04.04/lib/libRint.so
#51 0xb7379d20 in TTermInputHandler::ReadNotify() () from /home/thoma/Packages/root-6.04.04/lib/libRint.so
#52 0xb75cb58c in TUnixSystem::CheckDescriptors() () from /home/thoma/Packages/root-6.04.04/lib/libCore.so
#53 0xb75cc89a in TUnixSystem::DispatchOneEvent(bool) () from /home/thoma/Packages/root-6.04.04/lib/libCore.so
#54 0xb75114b8 in TSystem::InnerLoop() () from /home/thoma/Packages/root-6.04.04/lib/libCore.so
#55 0xb750f08d in TSystem::Run() () from /home/thoma/Packages/root-6.04.04/lib/libCore.so
#56 0xb751ece0 in TApplication::Run(bool) () from /home/thoma/Packages/root-6.04.04/lib/libCore.so
#57 0xb73796d4 in TRint::Run(bool) () from /home/thoma/Packages/root-6.04.04/lib/libRint.so
#58 0x08048cec in main ()
===========================================================


The lines below might hint at the cause of the crash.
If they do not help you then please submit a bug report at
http://root.cern.ch/bugs. Please post the ENTIRE stack trace
from above as an attachment in addition to anything else
that might help us fixing this issue.
===========================================================
#12 __GI___libc_free (mem=0x998858) at malloc.c:2929
#13 0xb7295e68 in operator delete(void*) () from /usr/lib/i386-linux-gnu/libstdc++.so.6
#14 0xb7295ea8 in operator delete[](void*) () from /usr/lib/i386-linux-gnu/libstdc++.so.6
#15 0xb753bd10 in TString::~TString() () from /home/thoma/Packages/root-6.04.04/lib/libCore.so
#16 0xae176171 in TGCommandPlugin::TGCommandPlugin(TGWindow const*, unsigned int, unsigned int) () from /home/thoma/Packages/root-6.04.04/lib/libGui.so
#17 0xaefba04c in ?? ()
#18 0xb4ca384e in cling::Interpreter::RunFunction(clang::FunctionDecl const*, cling::Value*) () from /home/thoma/Packages/root-6.04.04/lib/libCling.so
#19 0xb4ca87c8 in cling::Interpreter::EvaluateInternal(std::string const&, cling::CompilationOptions, cling::Value*, cling::Transaction**) () from /home/thoma/Packages/root-6.04.04/lib/libCling.so
#20 0xb4ca8a15 in cling::Interpreter::process(std::string const&, cling::Value*, cling::Transaction**) () from /home/thoma/Packages/root-6.04.04/lib/libCling.so
#21 0xb4d6d943 in cling::MetaProcessor::process(char const*, cling::Interpreter::CompilationResult&, cling::Value*) () from /home/thoma/Packages/root-6.04.04/lib/libCling.so
===========================================================

It seems a low level crashes in. May be @Axel will have an idea. On which kind of machine are you running ?

Debian v8 32 bit and running from VMWare player

Hi,

if this was working before this seems to point to something which changed in your setup. What did it change?

Cheers,
D

An can you install valgrind and send the output of

valgrind --num-callers=30 --suppressions=$ROOTSYS/etc/valgrind-root.supp --suppressions=$ROOTSYS/etc/valgrind-root-python.supp --track-origins=yes root.exe testFile.root
root [1] TBrowser b

Cheers, Axel.

I installed valgrind and the result after, TBrowser showd up :

root [1] TBrowser b
==3262== Invalid free() / delete / delete[] / realloc()
==3262==    at 0x402BD08: operator delete[](void*) (vg_replace_malloc.c:542)
==3262==    by 0x41EDD0F: TString::~TString() (in /home/thoma/Packages/root-6.04.04/lib/libCore.so)
==3262==    by 0x10FBC170: TGCommandPlugin::TGCommandPlugin(TGWindow const*, unsigned int, unsigned int) (in /home/thoma/Packages/root-6.04.04/lib/libGui.so)
==3262==    by 0x1124E04B: ???
==3262==    by 0x514C84D: cling::Interpreter::RunFunction(clang::FunctionDecl const*, cling::Value*) (in /home/thoma/Packages/root-6.04.04/lib/libCling.so)
==3262==    by 0x51517C7: cling::Interpreter::EvaluateInternal(std::string const&, cling::CompilationOptions, cling::Value*, cling::Transaction**) (in /home/thoma/Packages/root-6.04.04/lib/libCling.so)
==3262==    by 0x5151A14: cling::Interpreter::process(std::string const&, cling::Value*, cling::Transaction**) (in /home/thoma/Packages/root-6.04.04/lib/libCling.so)
==3262==    by 0x5216942: cling::MetaProcessor::process(char const*, cling::Interpreter::CompilationResult&, cling::Value*) (in /home/thoma/Packages/root-6.04.04/lib/libCling.so)
==3262==    by 0x50CA61A: TCling::ProcessLine(char const*, TInterpreter::EErrorCode*) (in /home/thoma/Packages/root-6.04.04/lib/libCling.so)
==3262==    by 0x41D3923: TApplication::ProcessLine(char const*, bool, int*) (in /home/thoma/Packages/root-6.04.04/lib/libCore.so)
==3262==    by 0x4206BED: TROOT::ProcessLine(char const*, int*) (in /home/thoma/Packages/root-6.04.04/lib/libCore.so)
==3262==    by 0x10FC3C49: TRootBrowser::ExecPlugin(char const*, char const*, char const*, int, int) (in /home/thoma/Packages/root-6.04.04/lib/libGui.so)
==3262==    by 0x10FC3279: TRootBrowser::InitPlugins(char const*) (in /home/thoma/Packages/root-6.04.04/lib/libGui.so)
==3262==    by 0x10FC348B: TRootBrowser::TRootBrowser(TBrowser*, char const*, unsigned int, unsigned int, char const*, bool) (in /home/thoma/Packages/root-6.04.04/lib/libGui.so)
==3262==    by 0x10FC3599: TRootBrowser::NewBrowser(TBrowser*, char const*, unsigned int, unsigned int, char const*) (in /home/thoma/Packages/root-6.04.04/lib/libGui.so)
==3262==    by 0x1123E277: ???
==3262==    by 0x50E4B6B: TClingCallFunc::exec(void*, void*) const (in /home/thoma/Packages/root-6.04.04/lib/libCling.so)
==3262==    by 0x50E5A16: TClingCallFunc::exec_with_valref_return(void*, cling::Value*) const (in /home/thoma/Packages/root-6.04.04/lib/libCling.so)
==3262==    by 0x50F17D6: TClingCallFunc::ExecInt(void*) (in /home/thoma/Packages/root-6.04.04/lib/libCling.so)
==3262==    by 0x50A263B: TCling::CallFunc_ExecInt(CallFunc_t*, void*) const (in /home/thoma/Packages/root-6.04.04/lib/libCling.so)
==3262==    by 0x4241DBF: TMethodCall::Execute(void*, long&) (in /home/thoma/Packages/root-6.04.04/lib/libCore.so)
==3262==    by 0x1109C717: TRootGuiFactory::CreateBrowserImp(TBrowser*, char const*, unsigned int, unsigned int, char const*) (in /home/thoma/Packages/root-6.04.04/lib/libGui.so)
==3262==    by 0x41BD365: TBrowser::TBrowser(char const*, char const*, TBrowserImp*, char const*) (in /home/thoma/Packages/root-6.04.04/lib/libCore.so)
==3262==    by 0x8034031: ???
==3262==    by 0x803406A: ???
==3262==    by 0x51A0498: cling::IncrementalExecutor::runStaticInitializersOnce(cling::Transaction const&) (in /home/thoma/Packages/root-6.04.04/lib/libCling.so)
==3262==    by 0x514D568: cling::Interpreter::executeTransaction(cling::Transaction&) (in /home/thoma/Packages/root-6.04.04/lib/libCling.so)
==3262==    by 0x5171944: cling::IncrementalParser::commitTransaction(llvm::PointerIntPair<cling::Transaction*, 2u, cling::IncrementalParser::EParseResult, llvm::PointerLikeTypeTraits<cling::Transaction*> >) (in /home/thoma/Packages/root-6.04.04/lib/libCling.so)
==3262==    by 0x5173809: cling::IncrementalParser::Compile(llvm::StringRef, cling::CompilationOptions const&) (in /home/thoma/Packages/root-6.04.04/lib/libCling.so)
==3262==    by 0x51516C5: cling::Interpreter::EvaluateInternal(std::string const&, cling::CompilationOptions, cling::Value*, cling::Transaction**) (in /home/thoma/Packages/root-6.04.04/lib/libCling.so)
==3262==  Address 0xfc0778 is not stack'd, malloc'd or (recently) free'd
==3262== 
(TBrowser &) @0x43f301c

Got some more, when quitting root with .q

root [4] .q
==3262== 
==3262== HEAP SUMMARY:
==3262==     in use at exit: 26,990,740 bytes in 113,866 blocks
==3262==   total heap usage: 791,438 allocs, 677,575 frees, 320,533,088 bytes allocated
==3262== 
==3262== LEAK SUMMARY:
==3262==    definitely lost: 168,141 bytes in 1,549 blocks
==3262==    indirectly lost: 298,712 bytes in 8,126 blocks
==3262==      possibly lost: 422,294 bytes in 5,328 blocks
==3262==    still reachable: 25,516,939 bytes in 86,543 blocks
==3262==         suppressed: 584,654 bytes in 12,320 blocks
==3262== Rerun with --leak-check=full to see details of leaked memory
==3262== 
==3262== For counts of detected and suppressed errors, rerun with: -v
==3262== ERROR SUMMARY: 10 errors from 10 contexts (suppressed: 11075 from 221)

Thanks - but argh, that doesn’t give any additional info either.

It’s super bizarre. Did you upgrade your Debian recently? We don’t do a lot of 32bit these days - but we do test it.

The only option I see at the moment is to install a newer ROOT version (6.10), or to (re-)build 6.04.latest yourself. Either with -DCMAKE_BUILD_TYPE=Debug to help us debug this issue, or without, because I bet it’ll just work once you rebuilt…

Axel.

Sorry - I misread the valgrind output!

In ROOT, what does

gSystem->HomeDirectory()
gSystem->UnixPathName(gSystem->HomeDirectory())

give?

If that looks kosher, can you mv ~/.root_hist ~/.root_hist.BAK and try again? If that helps, can you maybe share that file - check that it doesn’t contain anything secret etc,

Cheers, Axel.

[0] gSystem->HomeDirectory()
*(const char ) "/home/thoma"
root [1] gSystem->UnixPathName(gSystem->HomeDirectory())
*(const char ) "/home/thoma"
root [2] .q

Output looks like this ~/.root_hist.BAK

  • TBrowser b
  • TBrowser b
  • TBrowser ba
  • .q
  • .x stacked.C
  • .q
  • gSystem->HomeDirectory()
  • gSystem->UnixPathName(gSystem->HomeDirectory())
  • .q

No idea, why it works now. Works just like that.

GOOD! Did that mv ~/.root_hist ~/.root_hist.BAK maybe help?

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