Ximi1970 / systray-x

SysTray-X: A system tray extension for Thunderbird. Needs both the addon AND the companion app installed to work. Will not work with TB flatpaks or snaps.
Mozilla Public License 2.0
217 stars 14 forks source link

Clicking choose icon in app companion crash it #34

Closed PutinVladimir closed 3 years ago

PutinVladimir commented 4 years ago
Application: SysTray-X (SysTray-X), signal: Segmentation fault
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[Current thread is 1 (Thread 0x7f59c7c182c0 (LWP 8367))]

Thread 3 (Thread 0x7f59bf7fe700 (LWP 8371)):
#0  0x00007f59cc1bd494 in read () from /lib/x86_64-linux-gnu/libc.so.6
#1  0x00007f59cc14f670 in _IO_file_underflow () from /lib/x86_64-linux-gnu/libc.so.6
#2  0x00007f59cc14e6e8 in ?? () from /lib/x86_64-linux-gnu/libc.so.6
#3  0x00007f59cc143687 in fread () from /lib/x86_64-linux-gnu/libc.so.6
#4  0x00007f59cc51a60d in __gnu_cxx::stdio_sync_filebuf<char, std::char_traits<char> >::xsgetn(char*, long) () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#5  0x00007f59cc52893d in std::istream::read(char*, long) () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#6  0x0000557fbe379b72 in ?? ()
#7  0x00007f59cc8ff933 in QMetaObject::activate(QObject*, int, int, void**) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#8  0x00007f59cc90b387 in QTimer::timeout(QTimer::QPrivateSignal) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#9  0x00007f59cc90002b in QObject::event(QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#10 0x00007f59cd2e84c1 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#11 0x00007f59cd2ef970 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#12 0x00007f59cc8d6489 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#13 0x00007f59cc926b38 in QTimerInfoList::activateTimers() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#14 0x00007f59cc927394 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#15 0x00007f59cb283f2e in g_main_context_dispatch () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#16 0x00007f59cb2841c8 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#17 0x00007f59cb28425c in g_main_context_iteration () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#18 0x00007f59cc927727 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#19 0x00007f59cc8d515b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#20 0x00007f59cc724e76 in QThread::exec() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#21 0x00007f59cc72ea67 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#22 0x00007f59cc5bcfa3 in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0
#23 0x00007f59cc1cc4cf in clone () from /lib/x86_64-linux-gnu/libc.so.6

Thread 2 (Thread 0x7f59bffff700 (LWP 8370)):
#0  0x00007f59cc5c658b in read () from /lib/x86_64-linux-gnu/libpthread.so.0
#1  0x00007f59cb2c9aa0 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f59cb283c0f in g_main_context_check () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f59cb2840e0 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007f59cb28425c in g_main_context_iteration () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007f59cc927743 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#6  0x00007f59cc8d515b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#7  0x00007f59cc724e76 in QThread::exec() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#8  0x00007f59ccb7d545 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5DBus.so.5
#9  0x00007f59cc72ea67 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#10 0x00007f59cc5bcfa3 in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0
#11 0x00007f59cc1cc4cf in clone () from /lib/x86_64-linux-gnu/libc.so.6

Thread 1 (Thread 0x7f59c7c182c0 (LWP 8367)):
[KCrash Handler]
#6  0x00007f59c4dd3f09 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Xml.so.5
#7  0x00007f59c4dd41c8 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Xml.so.5
#8  0x00007f59c4dd4229 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Xml.so.5
#9  0x00007f59c50d7698 in KBookmark::setMetaDataItem(QString const&, QString const&, KBookmark::MetaDataOverwriteMode) () from /usr/lib/x86_64-linux-gnu/libKF5Bookmarks.so.5
#10 0x00007f59c62f91ed in KFilePlacesModel::KFilePlacesModel(QString const&, QObject*) () from /usr/lib/x86_64-linux-gnu/libKF5KIOFileWidgets.so.5
#11 0x00007f59c62fa7ea in KFilePlacesModel::KFilePlacesModel(QObject*) () from /usr/lib/x86_64-linux-gnu/libKF5KIOFileWidgets.so.5
#12 0x00007f59c62ed44b in KFileWidget::KFileWidget(QUrl const&, QWidget*) () from /usr/lib/x86_64-linux-gnu/libKF5KIOFileWidgets.so.5
#13 0x00007f59c63c8039 in ?? () from /usr/lib/x86_64-linux-gnu/qt5/plugins/platformthemes/KDEPlasmaPlatformTheme.so
#14 0x00007f59c63c8735 in ?? () from /usr/lib/x86_64-linux-gnu/qt5/plugins/platformthemes/KDEPlasmaPlatformTheme.so
#15 0x00007f59c63bda2c in ?? () from /usr/lib/x86_64-linux-gnu/qt5/plugins/platformthemes/KDEPlasmaPlatformTheme.so
#16 0x00007f59cd4d1d3d in QDialogPrivate::platformHelper() const () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#17 0x00007f59cd4e3d8b in QFileDialogPrivate::init(QUrl const&, QString const&, QString const&) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#18 0x00007f59cd4e417d in QFileDialog::QFileDialog(QWidget*, QString const&, QString const&, QString const&) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#19 0x0000557fbe3885a7 in ?? ()
#20 0x00007f59cc8ff933 in QMetaObject::activate(QObject*, int, int, void**) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#21 0x00007f59cd3ce602 in QAbstractButton::clicked(bool) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#22 0x00007f59cd3ce81a in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#23 0x00007f59cd3cfbdf in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#24 0x00007f59cd3cfdb5 in QAbstractButton::mouseReleaseEvent(QMouseEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#25 0x00007f59cd3264d8 in QWidget::event(QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#26 0x00007f59cd2e84c1 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#27 0x00007f59cd2efbb8 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#28 0x00007f59cc8d6489 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#29 0x00007f59cd2eeee9 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#30 0x00007f59cd340fd4 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#31 0x00007f59cd343b5e in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#32 0x00007f59cd2e84c1 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#33 0x00007f59cd2ef970 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#34 0x00007f59cc8d6489 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#35 0x00007f59ccd18ff3 in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#36 0x00007f59ccd1ae75 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#37 0x00007f59cccf506b in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#38 0x00007f59c786840b in ?? () from /usr/lib/x86_64-linux-gnu/libQt5XcbQpa.so.5
#39 0x00007f59cc8d515b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#40 0x00007f59cc8dd132 in QCoreApplication::exec() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#41 0x0000557fbe379844 in main ()
[Inferior 1 (process 8367) detached]
fabianski7 commented 4 years ago

you could modify the issue and put this code in the correct way, using the "insert code" option of the toolbar. 191457-20-06-2020

like this

As of now, you are quoting several other bugs that have nothing to do with this one.

Ximi1970 commented 4 years ago

I cannot replicate the problem, all seems to work just fine in Debian. Are you trying to load a special icon file? Clicking, selecting an icon (/usr/share/icons/desktop-base/256x256/emblems/emblem-debian.png) shows up nicely in the taskbar.

PutinVladimir commented 4 years ago

Are you trying to load a special icon file?

Just click "Choose" button in the companion app and it is crash immediately.

And do more investigation it's apparmor related again. If apparmor disabled then app not crash.

Ximi1970 commented 4 years ago

It does not crash in my Debian....

PutinVladimir commented 4 years ago

It does not crash in my Debian....

Install Apparmor and it will crash.

NOW I mod /etc/apparmor.d/local/usr.bin.thunderbird

# Site-specific additions and overrides for usr.bin.thunderbird.
# For more details, please see /etc/apparmor.d/local/README.

  # SysTray-X
  @{PROC}/[0-9]*/comm r,
  @{PROC}/sys/kernel/core_pattern r,
  owner @{HOME}/.mozilla/native-messaging-hosts/* mixr,
  owner @{HOME}/.config/{kdeglobals,breezerc,baloofilerc} r,
  owner @{HOME}/.local/share/user-places.xbel r,
  owner @{HOME}/.cache/icon-cache.kcache wrk,

And it stop crashed.

But now It is try to create socket

Jun 28 21:18:59 pc kernel: [41863.635611] audit: type=1400 audit(1593353939.495:248): apparmor="DENIED" operation="mknod" profile="thunderbird" name="/home/user/.config/SysTray-Xrc.lock" pid=31571 comm="SysTray-X" requested_mask="c" denied_mask="c" fsuid=1000 ouid=1000

I don't undestand for what reasons...

Ximi1970 commented 4 years ago

There is a socket between thunderbird addon and the addon app. That is the way how native messaging in the web extensions API works.

PutinVladimir commented 4 years ago

Ok. So we Should give this right in apparmor...

PutinVladimir commented 4 years ago

added on more string in /etc/apparmor.d/local/usr.bin.thunderbird

owner @{HOME}/.config/SysTray-Xrc.lock wrk,

Ximi1970 commented 4 years ago

I will put your mods for app armor in the README for now. I do not think it is a wise idea to automaticaly modify the app armor setttings from my installer (if even allowed)

Thank you figuring out the apparmor rules!

Ximi1970 commented 4 years ago

Maybe an extra profile package speically for app armor?

PutinVladimir commented 4 years ago

I do not think it is a wise idea to automaticaly modify the app armor setttings from my installer (if even allowed) Maybe an extra profile package speically for app armor?

Apparmor has '/etc/apparmor.d/usr.bin.thunderbird' putting somethings into '/etc/apparmor.d/local/usr.bin.thunderbird' we are reorder settings. And file in 'local' dir is special includes for this purpose so you can put this file if package apparmor is installed.

Ximi1970 commented 4 years ago

Found out app armor is already installed in my Debian...Are you using the script installer?

PutinVladimir commented 4 years ago

Are you using the script installer?

Yes I used local installed addon and companion...

PutinVladimir commented 3 years ago

Not reproducible now.