Hi everyone,
I’m running ROOT 5.34/32 on a Fedora 23 system, and I’ve been having some trouble with the EVE package. As a minimal working example, when I run the triangleset.C tutorial macro (see https://root.cern.ch/root/html/tutorials/eve/triangleset.C.html), ROOT immediately segfaults, producing the following output:
[code]root [0] .x triangleset.C
root [1]
*** Break *** segmentation violation
===========================================================
There was a crash.
This is the entire stack trace of all threads:
#0 0x00007f60308233ba in waitpid () from /lib64/libc.so.6
#1 0x00007f603079e9cb in do_system () from /lib64/libc.so.6
#2 0x00007f6031556622 in TUnixSystem::StackTrace() () from /usr/lib64/root/libCore.so.5.34
#3 0x00007f603155888c in TUnixSystem::DispatchSignals(ESignals) () from /usr/lib64/root/libCore.so.5.34
#4
#5 0x00007f6020101f43 in brw_merge_inputs () from /usr/lib64/dri/i965_dri.so
#6 0x00007f602010222e in brw_draw_prims () from /usr/lib64/dri/i965_dri.so
#7 0x00007f601ff2d684 in vbo_exec_vtx_flush () from /usr/lib64/dri/i965_dri.so
#8 0x00007f601ff1932c in vbo_exec_FlushVertices_internal () from /usr/lib64/dri/i965_dri.so
#9 0x00007f601ff2a463 in vbo_exec_FlushVertices () from /usr/lib64/dri/i965_dri.so
#10 0x00007f601fdfeaf9 in _mesa_PopAttrib () from /usr/lib64/dri/i965_dri.so
#11 0x00007f602131fecf in TEveTriangleSetGL::DirectDraw(TGLRnrCtx&) const () from /usr/lib64/root/libEve.so
#12 0x00007f60251ba7eb in TGLLogicalShape::Draw(TGLRnrCtx&) const () from /usr/lib64/root/libRGL.so
#13 0x00007f60251aa7a4 in TGLPhysicalShape::Draw(TGLRnrCtx&) const () from /usr/lib64/root/libRGL.so
#14 0x00007f6025205f9a in TGLScene::RenderElements(TGLRnrCtx&, std::vector<TGLScene::DrawElement_t*, std::allocatorTGLScene::DrawElement_t* >&, bool, std::vector<TGLPlane, std::allocator > const*) () from /usr/lib64/root/libRGL.so
#15 0x00007f6025206fdc in TGLScene::RenderAllPasses(TGLRnrCtx&, std::vector<TGLScene::DrawElement_t*, std::allocatorTGLScene::DrawElement_t* >&, bool) () from /usr/lib64/root/libRGL.so
#16 0x00007f602517ab61 in TGLViewerBase::SubRenderScenes(void (TGLSceneBase::)(TGLRnrCtx&)) () from /usr/lib64/root/libRGL.so
#17 0x00007f602517ae04 in TGLViewerBase::RenderOpaque(bool, bool) () from /usr/lib64/root/libRGL.so
#18 0x00007f602517a557 in TGLViewerBase::Render() () from /usr/lib64/root/libRGL.so
#19 0x00007f60251c3735 in TGLViewer::Render() () from /usr/lib64/root/libRGL.so
#20 0x00007f60251c10cc in TGLViewer::DoDrawMono(bool) () from /usr/lib64/root/libRGL.so
#21 0x00007f60251c3dcd in TGLViewer::DoDraw(bool) () from /usr/lib64/root/libRGL.so
#22 0x00007f602133875f in TEveViewerList::RepaintChangedViewers(bool, bool) () from /usr/lib64/root/libEve.so
#23 0x00007f60213ac488 in TEveManager::DoRedraw3D() () from /usr/lib64/root/libEve.so
#24 0x00007f602142a761 in G__G__Eve1_187_0_35(G__value, char const*, G__param*, int) () from /usr/lib64/root/libEve.so
#25 0x00007f602feffeab in Cint::G__CallFunc::Execute(void*) () from /usr/lib64/root/libCint.so.5.34
#26 0x00007f60315191fc in TCint::CallFunc_Exec(void*, void*) const () from /usr/lib64/root/libCore.so.5.34
#27 0x00007f603149c7a3 in TQConnection::ExecuteMethod() () from /usr/lib64/root/libCore.so.5.34
#28 0x00007f60314e5249 in TQObject::Emit(char const*) () from /usr/lib64/root/libCore.so.5.34
#29 0x00007f60314f92f7 in TTimer::Notify() () from /usr/lib64/root/libCore.so.5.34
#30 0x00007f60314f9221 in TTimer::CheckTimer(TTime const&) () from /usr/lib64/root/libCore.so.5.34
#31 0x00007f60315587c9 in TUnixSystem::DispatchTimers(bool) () from /usr/lib64/root/libCore.so.5.34
#32 0x00007f6031558cd5 in TUnixSystem::DispatchOneEvent(bool) () from /usr/lib64/root/libCore.so.5.34
#33 0x00007f60314eb154 in TSystem::InnerLoop() () from /usr/lib64/root/libCore.so.5.34
#34 0x00007f60314e943f in TSystem::Run() () from /usr/lib64/root/libCore.so.5.34
#35 0x00007f6031477caf in TApplication::Run(bool) () from /usr/lib64/root/libCore.so.5.34
#36 0x00007f60310d528b in TRint::Run(bool) () from /usr/lib64/root/libRint.so.5.34
#37 0x000055ecd50f031c 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.
#5 0x00007f6020101f43 in brw_merge_inputs () from /usr/lib64/dri/i965_dri.so
#6 0x00007f602010222e in brw_draw_prims () from /usr/lib64/dri/i965_dri.so
#7 0x00007f601ff2d684 in vbo_exec_vtx_flush () from /usr/lib64/dri/i965_dri.so
#8 0x00007f601ff1932c in vbo_exec_FlushVertices_internal () from /usr/lib64/dri/i965_dri.so
#9 0x00007f601ff2a463 in vbo_exec_FlushVertices () from /usr/lib64/dri/i965_dri.so
#10 0x00007f601fdfeaf9 in _mesa_PopAttrib () from /usr/lib64/dri/i965_dri.so
#11 0x00007f602131fecf in TEveTriangleSetGL::DirectDraw(TGLRnrCtx&) const () from /usr/lib64/root/libEve.so
#12 0x00007f60251ba7eb in TGLLogicalShape::Draw(TGLRnrCtx&) const () from /usr/lib64/root/libRGL.so
#13 0x00007f60251aa7a4 in TGLPhysicalShape::Draw(TGLRnrCtx&) const () from /usr/lib64/root/libRGL.so
#14 0x00007f6025205f9a in TGLScene::RenderElements(TGLRnrCtx&, std::vector<TGLScene::DrawElement_t*, std::allocatorTGLScene::DrawElement_t* >&, bool, std::vector<TGLPlane, std::allocator > const*) () from /usr/lib64/root/libRGL.so
#15 0x00007f6025206fdc in TGLScene::RenderAllPasses(TGLRnrCtx&, std::vector<TGLScene::DrawElement_t*, std::allocatorTGLScene::DrawElement_t* >&, bool) () from /usr/lib64/root/libRGL.so
#16 0x00007f602517ab61 in TGLViewerBase::SubRenderScenes(void (TGLSceneBase::*)(TGLRnrCtx&)) () from /usr/lib64/root/libRGL.so
#17 0x00007f602517ae04 in TGLViewerBase::RenderOpaque(bool, bool) () from /usr/lib64/root/libRGL.so
#18 0x00007f602517a557 in TGLViewerBase::Render() () from /usr/lib64/root/libRGL.so
#19 0x00007f60251c3735 in TGLViewer::Render() () from /usr/lib64/root/libRGL.so
#20 0x00007f60251c10cc in TGLViewer::DoDrawMono(bool) () from /usr/lib64/root/libRGL.so
#21 0x00007f60251c3dcd in TGLViewer::DoDraw(bool) () from /usr/lib64/root/libRGL.so
#22 0x00007f602133875f in TEveViewerList::RepaintChangedViewers(bool, bool) () from /usr/lib64/root/libEve.so
#23 0x00007f60213ac488 in TEveManager::DoRedraw3D() () from /usr/lib64/root/libEve.so
Root > Error in TGLLockable::TakeLock: ‘TGLSceneBase Event scene’ unable to take ModifyLock, already DrawLock
Error in TGLLockable::ReleaseLock: ‘TGLSceneBase Event scene’ unable to release ModifyLock, is DrawLock
Error in TGLSAViewer::TGLViewer::SetupCameras: expected kUnlocked, found DrawLock
Error in TGLLockable::TakeLock: ‘TGLViewerBase’ unable to take DrawLock, already DrawLock
Error in TGLLockable::TakeLock: ‘TGLViewerBase’ unable to take DrawLock, already DrawLock
Error in TGLLockable::TakeLock: ‘TGLViewerBase’ unable to take DrawLock, already DrawLock
Error in TGLLockable::TakeLock: ‘TGLViewerBase’ unable to take DrawLock, already DrawLock
Error in TGLLockable::TakeLock: ‘TGLViewerBase’ unable to take DrawLock, already DrawLock
Error in TGLLockable::TakeLock: ‘TGLViewerBase’ unable to take DrawLock, already DrawLock
Error in TGLLockable::TakeLock: ‘TGLViewerBase’ unable to take DrawLock, already DrawLock
Error in TGLLockable::TakeLock: ‘TGLViewerBase’ unable to take DrawLock, already DrawLock
Error in TGLLockable::TakeLock: ‘TGLViewerBase’ unable to take DrawLock, already DrawLock[/code]
I’m using the official Fedora 23 ROOT and mesa-libGL packages. I’ve also tried setting the environment variable “LIBGL_ALWAYS_INDIRECT=1” before running the macro. WIth that change, root gives me the following error message and hangs.
Has anyone else seen this before? Some of the other tutorials seem to work ok, but the event viewer seems to be pretty fragile on my system.