Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

lxqt-panel crashes on startup if statusnotifier is enabled (possibly related to Qt 5.10-beta3) #1383

Closed
berolinux opened this issue Nov 7, 2017 · 9 comments
Projects

Comments

@berolinux
Copy link

lxqt-panel crashes on startup -- I didn't get to debug this a lot yet, so I'm not sure whether or not this is related to the fact that I'm using Qt 5.10-beta3 (current Plasma works fine with that version of Qt, but that doesn't necessarily mean it's bug-free).

Error messages and backtrace:
(0x7fffffffd530) Warning: QObject::connect: signal not found in LXQt::Settings
(0x7fffffffd530) Warning: QObject::connect: signal not found in GlobalKeyShortcut::Action
(0x7fffffffd530) Warning: QObject::connect: signal not found in GlobalKeyShortcut::Action
(0x7fffffffd530) Warning: QObject::connect: signal not found in LXQt::Settings
(0x7fffffffd530) Warning: QObject::connect: signal not found in LXQt::Settings
(0x7fffffffd530) Warning: QFSFileEngine::open: No file name specified
(0x7fffffffd530) Debug: XdgDesktopFile "/usr/share/applications/qupzilla.desktop" is not valid
(0x7fffffffd530) Warning: QFSFileEngine::open: No file name specified
(0x7fffffffd530) Debug: XdgDesktopFile "/usr/share/applications/openmandriva-drakconf.desktop" is not valid
(0x7fffffffd530) Warning: QObject::connect: signal not found in LXQt::Settings
(0x7fffffffd530) Warning: QObject::connect: signal not found in LXQt::Settings
(0x7fffffffd530) Warning: QObject::connect: signal not found in LXQt::Settings

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff7aac6f8 in QLayout::setEnabled(bool) ()
from /usr/lib64/libQt5Widgets.so.5
(gdb) bt
#0 0x00007ffff7aac6f8 in QLayout::setEnabled(bool) ()
from /usr/lib64/libQt5Widgets.so.5
#1 0x0000000000495bac in StatusNotifierWidget::realign() ()
#2 0x000000000049553c in StatusNotifierWidget::StatusNotifierWidget(ILXQtPanelPlugin*, QWidget*) ()
#3 0x000000000048f607 in StatusNotifier::StatusNotifier(ILXQtPanelPluginStartupInfo const&) ()
#4 0x00000000004b6f95 in ?? ()
#5 0x00000000004b6fe6 in ?? ()
#6 0x000000000045c1ff in Plugin::loadLib(ILXQtPanelPluginLibrary const*) ()
#7 0x000000000045b3a5 in Plugin::Plugin(LXQt::PluginInfo const&, LXQt::Settings*, QString const&, LXQtPanel*) ()
#8 0x000000000044de5c in PanelPluginsModel::loadPlugin(LXQt::PluginInfo const&, QString const&) ()
#9 0x000000000044d92c in PanelPluginsModel::loadPlugins(QStringList const&) ()
#10 0x000000000044cf34 in PanelPluginsModel::PanelPluginsModel(LXQtPanel*, QString const&, QStringList const&, QObject*) ()
#11 0x000000000045252c in LXQtPanel::loadPlugins() ()
#12 0x00000000004510ec in LXQtPanel::LXQtPanel(QString const&, LXQt::Settings*, QWidget*) ()
#13 0x000000000045814e in LXQtPanelApplication::addPanel(QString const&) ()
#14 0x0000000000457873 in LXQtPanelApplication::LXQtPanelApplication(int&, char**) ()
#15 0x000000000044cea4 in main ()

System Information
  • Distribution & Version: OpenMandriva cooker snapshot
  • Kernel: 4.13.11
  • Qt Version: 5.10-beta3
  • liblxqt Version: 0.12.0
  • Package version: 0.12.0
@berolinux
Copy link
Author

It's definitely related to the statusnotifier plugin -- everything works as expected (minus the statusnotifier, obviously) if I rm /usr/share/lxqt/lxqt-panel/statusnotifier.desktop

@berolinux berolinux changed the title lxqt-panel crashes on startup (possibly related to Qt 5.10-beta3) lxqt-panel crashes on startup if statusnotifier is enabled (possibly related to Qt 5.10-beta3) Nov 7, 2017
@tsujan
Copy link
Member

tsujan commented Nov 7, 2017

I'm not sure whether or not this is related to the fact that I'm using Qt 5.10-beta3

Did you recompile everything against Qt 5.10-beta3?

@berolinux
Copy link
Author

berolinux commented Nov 7, 2017

Looking at it a bit more, this is a really odd issue:
In StatusNotifierWidget::realign(), qobject_cast<LXQt::GridLayout*>(this->layout()) returns a null pointer. If I replace qobject_cast with reinterpret_cast (yes, not exactly a nice thing to do...), everything works as expected.

I did recompile everything against 5.10-beta3.

@berolinux
Copy link
Author

Crude but effective workaround

lxqt-panel-0.12.0-workaround-statusnotifier-crash.patch.txt

@tsujan
Copy link
Member

tsujan commented Nov 7, 2017

If I replace qobject_cast with reinterpret_cast (yes, not exactly a nice thing to do...), everything works as expected.

Maybe the beta version of Qt isn't ready for use yet. We have to wait until a stable Qt 5.10 comes out.

@berolinux
Copy link
Author

This does look like a bug in qobject_cast -- but that makes it surprising that Plasma seems to work without issues using the same Qt

@tsujan
Copy link
Member

tsujan commented Nov 7, 2017

If it is a bug and if it persists in the stable version, it'll give us a headache again. We can't do anything until a stable Qt is released.

@yan12125
Copy link
Member

Got Qt 5.10.0 beta 4 from Arch's packages. Running lxqt-panel (which is built against Qt 5.9.2) looks fine. statusnotifier passes smoke test, too.

I may try to rebuild the whole LXQt with 5.10.0 beta 4 and see if there's a difference.

@tsujan
Copy link
Member

tsujan commented Dec 20, 2017

Definitely not the case with stable Qt5.10.

@tsujan tsujan closed this as completed Dec 20, 2017
@agaida agaida added this to test in Issues Aug 11, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Issues
  
Translations and L10N
Development

No branches or pull requests

3 participants