Skip to content

sshmanager plugin: Handle widget not yet available, avoid infinite looping

Started crashing here when I upgraded for some reason, now it has stopped crashing it least.

If anyone wants to dig deeper, here's the stacktrace:

#0  SSHManagerTreeWidget::setCurrentController(Konsole::SessionController*) (this=0x0, controller=0x55bd71bbd170) at /usr/include/c++/11.1.0/bits/unique_ptr.h:173
#1  0x00007f30ad065490 in QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, QtPrivate::List<Konsole::SessionController*>, void, void (Konsole::IKonsolePlugin::*)(Konsole::SessionController*)>::call(void (Konsole::IKonsolePlugin::*)(Konsole::SessionController*), Konsole::IKonsolePlugin*, void**) (f=&virtual table offset 104, o=0x55bd71876fa0, arg=0x7fff0f04d6d0) at /usr/include/qt/QtCore/qobjectdefs_impl.h:152
#2  0x00007f30ad0640de in QtPrivate::FunctionPointer<void (Konsole::IKonsolePlugin::*)(Konsole::SessionController*)>::call<QtPrivate::List<Konsole::SessionController*>, void>(void (Konsole::IKonsolePlugin::*)(Konsole::SessionController*), Konsole::IKonsolePlugin*, void**) (f=&virtual table offset 104, o=0x55bd71876fa0, arg=0x7fff0f04d6d0) at /usr/include/qt/QtCore/qobjectdefs_impl.h:185
#3  0x00007f30ad063169 in QtPrivate::QSlotObject<void (Konsole::IKonsolePlugin::*)(Konsole::SessionController*), QtPrivate::List<Konsole::SessionController*>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*)
    (which=1, this_=0x55bd71b97c40, r=0x55bd71876fa0, a=0x7fff0f04d6d0, ret=0x0) at /usr/include/qt/QtCore/qobjectdefs_impl.h:418
#4  0x00007f30aab357ab in  () at /usr/lib/libQt5Core.so.5
#5  0x00007f30acdf66aa in Konsole::ViewManager::activeViewChanged(Konsole::SessionController*) (this=0x55bd718ebf50, _t1=0x55bd71bbd170) at /home/sandsmark/src/konsole/build/src/konsoleprivate_autogen/EWIEGA46WW/moc_ViewManager.cpp:520
#6  0x00007f30ace36f20 in Konsole::ViewManager::controllerChanged(Konsole::SessionController*) (this=0x55bd718ebf50, controller=0x55bd71bbd170) at /home/sandsmark/src/konsole/src/ViewManager.cpp:683
#7  0x00007f30ace36c7e in Konsole::ViewManager::createController(Konsole::Session*, Konsole::TerminalDisplay*) (this=0x55bd718ebf50, session=0x55bd71b97f30, view=0x55bd71ba2250) at /home/sandsmark/src/konsole/src/ViewManager.cpp:647
#8  0x00007f30ace37181 in Konsole::ViewManager::createView(Konsole::Session*) (this=0x55bd718ebf50, session=0x55bd71b97f30) at /home/sandsmark/src/konsole/src/ViewManager.cpp:723
#9  0x00007f30ad059d93 in Konsole::MainWindow::createSession(QExplicitlySharedDataPointer<Konsole::Profile>, QString const&) (this=0x55bd71869000, profile=..., directory=...) at /home/sandsmark/src/konsole/src/MainWindow.cpp:504
#10 0x00007f30ad04bc28 in Konsole::Application::newInstance() (this=0x7fff0f04dac0) at /home/sandsmark/src/konsole/src/Application.cpp:188
#11 0x000055bd6fac294b in main(int, char**) (argc=1, argv=0x7fff0f04dc58) at /home/sandsmark/src/konsole/src/main.cpp:226

Merge request reports