Hello,
I tried if I can reproduce the crash.
And I get one with a VM, with acceleration enabled [1],
running a current minimal Debian Trixie.
The SIGSEGV manifests when clicking in the upper right corner
at the "Close parameters" arrow.
The segfault happens because in [2] the variable mSceneManager
contains a NULL, but gets dereferenced unconditionally.
Unfortunately this RQListener object looks like getting re-created
a few times, therefore getting the mSceneManager initilized to NULL.
At startup the mSceneManager gets initialized in a backtrace like in [3],
but for some unknown reason this does not happen right
before the crash (without knowing how it fits all together).
I hope this could be of some help.
Kind regards,
Bernhard
[1] -device virtio-vga-gl -display gtk,gl=on
[2] Where the actual crash happens because mSceneManager is NULL:
Thread 1 "sightrun" received signal SIGSEGV, Segmentation fault.
0x00007fffd656aa28 in Ogre::CompositorChain::RQListener::renderQueueStarted (this=0x555558c81190, id=0 '\000', invocation="", skipThisQueue=@0x7fffffff7a57: false) at ./OgreMain/src/OgreCompositorChain.cpp:569
569 if (mSceneManager->getCurrentViewport() != mViewport)
(gdb) bt
#0 0x00007fffd656aa28 in Ogre::CompositorChain::RQListener::renderQueueStarted (this=0x555558c81190, id=0 '\000', invocation="", skipThisQueue=@0x7fffffff7a57: false) at ./OgreMain/src/OgreCompositorChain.cpp:569
#1 0x00007fffd66e3526 in Ogre::SceneManager::fireRenderQueueStarted (this=<optimized out>, id=0 '\000', invocation="") at ./OgreMain/src/OgreSceneManager.cpp:2634
#2 0x00007fffd66e8fca in Ogre::SceneManager::renderVisibleObjectsDefaultSequence (this=this@entry=0x555558ce5770) at ./OgreMain/src/OgreSceneManager.cpp:1693
#3 0x00007fffd66e900b in Ogre::SceneManager::_renderVisibleObjects (this=this@entry=0x555558ce5770) at ./OgreMain/src/OgreSceneManager.cpp:1619
#4 0x00007fffd66ef52a in Ogre::SceneManager::_renderScene (this=0x555558ce5770, camera=0x555558ceb6f0, vp=<optimized out>, includeOverlays=<optimized out>) at ./OgreMain/src/OgreSceneManager.cpp:1383
#5 0x00007fffd655ada9 in Ogre::Camera::_renderScene (this=0x555558ceb6f0, vp=0x555559ea6a20, includeOverlays=true) at ./OgreMain/src/OgreCamera.cpp:495
#6 0x00007fffd67a4fa9 in Ogre::Viewport::update (this=<optimized out>) at ./OgreMain/src/OgreViewport.cpp:218
#7 0x00007fffd66b37f8 in Ogre::RenderTarget::_updateViewport (this=0x555559e75ff0, viewport=0x555559ea6a20, updateStatistics=true) at ./OgreMain/src/OgreRenderTarget.cpp:203
#8 0x00007fffd66b2bf3 in Ogre::RenderTarget::_updateAutoUpdatedViewports (this=0x555559e75ff0, updateStatistics=true) at ./OgreMain/src/OgreRenderTarget.cpp:181
#9 0x00007fffd66b3a00 in Ogre::RenderTarget::updateImpl (this=0x555559e75ff0) at ./OgreMain/src/OgreRenderTarget.cpp:158
#10 0x00007fffd66b33e8 in Ogre::RenderTarget::update (this=0x555559e75ff0, swap=false) at ./OgreMain/src/OgreRenderTarget.cpp:565
#11 0x00007fffe3fb3ec3 in sight::module::viz::scene3d_qt::window::paintGL (this=0x55555825c440) at ./modules/viz/scene3d_qt/window.cpp:774
#12 0x00007fffeddc62d5 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
...
(gdb) print mSceneManager
$2 = (Ogre::SceneManager *) 0x0
[3] Where mSceneManager gets set when no crash follows:
Thread 1 "sightrun" hit Hardware watchpoint 2: *0x555558c811a0
Old value = 0
New value = 1489917808
Ogre::CompositorChain::RQListener::setOperation (this=this@entry=0x555558c81190, op=op@entry=0x555558d066d0, sm=sm@entry=0x555558ce5770, rs=0x5555580d7ed0) at ./OgreMain/src/OgreCompositorChain.cpp:590
590 mRenderSystem = rs;
(gdb) bt 20
#0 Ogre::CompositorChain::RQListener::setOperation (this=this@entry=0x555558c81190, op=op@entry=0x555558d066d0, sm=sm@entry=0x555558ce5770, rs=0x5555580d7ed0) at ./OgreMain/src/OgreCompositorChain.cpp:590
#1 0x00007fffd656a912 in Ogre::CompositorChain::preTargetOperation (this=this@entry=0x555558c81090, op=..., vp=0x555559eae3e0, cam=cam@entry=0x555558ceb6f0) at ./OgreMain/src/OgreCompositorChain.cpp:368
#2 0x00007fffd656b75c in Ogre::CompositorChain::preRenderTargetUpdate (evt=..., this=0x555558c81090) at ./OgreMain/src/OgreCompositorChain.cpp:313
#3 Ogre::CompositorChain::preRenderTargetUpdate (this=0x555558c81090, evt=...) at ./OgreMain/src/OgreCompositorChain.cpp:280
#4 0x00007fffd66b39e1 in Ogre::RenderTarget::firePreUpdate (this=0x555558cc4790) at ./OgreMain/src/OgreRenderTarget.cpp:370
#5 Ogre::RenderTarget::_beginUpdate (this=0x555558cc4790) at ./OgreMain/src/OgreRenderTarget.cpp:165
#6 Ogre::RenderTarget::updateImpl (this=0x555558cc4790) at ./OgreMain/src/OgreRenderTarget.cpp:157
#7 0x00007fffd66b33e8 in Ogre::RenderTarget::update (this=0x555558cc4790, swap=false) at ./OgreMain/src/OgreRenderTarget.cpp:565
#8 0x00007fffe3fb3ec3 in sight::module::viz::scene3d_qt::window::paintGL (this=0x55555825c440) at ./modules/viz/scene3d_qt/window.cpp:774
#9 0x00007fffeddc62d5 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
...