woodenshark / Lightpack

Lightpack and Prismatik open repository (For support use support@lightpack.tv)
https://lightpack.tv/
GNU General Public License v3.0
205 stars 244 forks source link

Prismatik crashes on Mint 17 (Ubuntu 14.04 based) #23

Closed chris-tina closed 10 years ago

chris-tina commented 10 years ago

Users continuously report that Prismatik crashes on start: 08:55:01:876Debug:void SettingsWindow::createTrayIcon() (process:6898): GLib-GObject-WARNING _: invalid (NULL) pointer instance (process:6898): GLib-GObject-CRITICAL _: g_signal_connect_data: assertion 'G_TYPE_CHECKINSTANCE (instance)' failed (process:6898): GLib-CRITICAL *: g_hash_table_lookup: assertion 'hashtable != NULL' failed (process:6898): GLib-CRITICAL *: g_hash_table_lookup: assertion 'hashtable != NULL' failed (process:6898): GLib-CRITICAL *: g_hash_table_lookup: assertion 'hashtable != NULL' failed (process:6898): GLib-CRITICAL *: g_hash_table_insert_internal: assertion 'hash_table != NULL' failed (process:6898): GLib-CRITICAL **: g_hash_table_lookup: assertion 'hash_table != NULL' failed Segmentation fault

Initially, the error was: prismatik: error while loading shared libraries: libQt5SerialPort.so.5: cannot open shared object file: No such file or directory

e-yes commented 10 years ago

Current implementation of SysTray icon classes assumes that Ubuntu OS (and derevatives) uses only Unity as Desktop Environment. Unfortunately, this is not the case in some cases (Kubuntu is another example). As quick workaround one can install Unity on their system: http://gamblisfx.com/how-to-install-ubuntu-unity-on-linux-mint-17/

Also I have to try add runtime checks to avoid segfaults (prismatik will work in so-called "trayless mode" at least. Better than nothing)

e-yes commented 10 years ago

Temporary workaround - to build without Unity support. Deb package for amd64 is available here: https://yadi.sk/d/_IHp5l6Cbej2a

e-yes commented 10 years ago

Further investigation showed that this happens due to issues inside GTK libraries. Give up, out of scope. 0x00007ffff6c8af50 in ?? () from /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so. 0 0x00007ffff6c8af50 in ?? () from /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0 1 0x00007ffff6c88016 in ?? () from /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0 2 0x00007ffff6c882a0 in gtk_accel_group_connect_by_path () from /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0 3 0x00007ffff6c8dfa4 in gtk_action_connect_accelerator () from /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0 4 0x00007ffff6d553bd in ?? () from /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0 5 0x00007ffff67d6b39 in g_object_set_valist () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0 6 0x00007ffff67d7397 in g_object_set () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0 7 0x00007ffff6c8c3ec in gtk_action_create_menu_item () from /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0 8 0x00007ffff6e4d099 in ?? () from /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0 9 0x00007ffff6e4c275 in ?? () from /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0 10 0x00007ffff6e4c275 in ?? () from /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0 11 0x00007ffff6e4fac1 in gtk_ui_manager_ensure_update () from /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0 12 0x000000000049d1fa in SysTrayIconPrivate::SysTrayIconPrivate (this= 0x76e880, q=0xbc4540) at systrayicon/SysTrayIcon_unity_p.hpp:94 13 0x000000000049c828 in SysTrayIcon::SysTrayIcon (this=0xbc4540, parent=0x0) at systrayicon/SysTrayIcon.cpp:37 14 0x000000000043004f in SettingsWindow::createTrayIcon (this=0x7f77d0) at SettingsWindow.cpp:1530 15 0x000000000041a275 in LightpackApplication::initializeAll (this= 0x7fffffffde60, appDirPath=...) at LightpackApplication.cpp:88 16 0x0000000000425789 in main (argc=1, argv=0x7fffffffe018) at main.cpp:138

http://pastebin.com/WCN8QUCg

hkoivuneva commented 9 years ago

Thanks for the info, cleared this up for me pretty well! So it seems that it is a GTK issue and not possible to fix, unless the whole app is implemented in a new way (not in notification tray but as just an open app?). Installing unity now. I love this little device, it's just GREAT! :D Thanks for the work you guys are doing!

derekdickerson commented 9 years ago

this is BS this should be working and needs to be reopend

Deevad commented 9 years ago

I confirm the issue, Linux Mint 17.2 here (based on 14.04), updated. here is what happen when I type prismatik to execute it in a terminal :

$ prismatik 
/home/asrock/main.conf
Unportable version
Application directory: /home/asrock/.Prismatik
Rename log:  "/home/asrock/.Prismatik/Logs/Prismatik.3.log"  to  "/home/asrock/.Prismatik/Logs/Prismatik.4.log" 
Rename log:  "/home/asrock/.Prismatik/Logs/Prismatik.2.log"  to  "/home/asrock/.Prismatik/Logs/Prismatik.3.log" 
Rename log:  "/home/asrock/.Prismatik/Logs/Prismatik.1.log"  to  "/home/asrock/.Prismatik/Logs/Prismatik.2.log" 
Rename log:  "/home/asrock/.Prismatik/Logs/Prismatik.0.log"  to  "/home/asrock/.Prismatik/Logs/Prismatik.1.log" 
Logs file: "/home/asrock/.Prismatik/Logs/Prismatik.0.log" 
23:10:03:541 Debug: LightpackApplication::LightpackApplication(int&, char**) 
23:10:03:541 Debug: Prismatik: 5.11.2 rev. 46ca39e 
23:10:03:541 Debug: Build with Qt verison: 5.2.1 
23:10:03:541 Debug: Qt version currently in use: 5.2.1 
23:10:03:542 Debug: static bool SettingsScope::Settings::Initialize(const QString&, bool) 
23:10:03:542 Debug: static QString SettingsScope::Settings::getMainConfigPath() "/home/asrock/.Prismatik/main.conf" 
23:10:03:542 Debug: static QString SettingsScope::Settings::getMainConfigPath() "/home/asrock/.Prismatik/main.conf" 
23:10:03:542 Debug: static bool SettingsScope::Settings::Initialize(const QString&, bool) debugLevel = 1 
23:10:03:542 Debug: Settings file: "/home/asrock/.Prismatik/Profiles/Lightpack.ini" 
23:10:03:543 Debug: static void SettingsScope::Settings::initDevicesMap() 
23:10:03:543 Debug: static void SettingsScope::Settings::initCurrentProfile(bool) false 
23:10:03:549 Debug: static void SettingsScope::Settings::initCurrentProfile(bool) led 
23:10:03:551 Debug: SettingsWindow::SettingsWindow(QWidget*) thread id:  0x7f2c229aba00 
23:10:03:941 Debug: void SettingsWindow::initLanguages() 
23:10:03:941 Debug: void SettingsWindow::initVirtualLeds(int) 10 
23:10:03:942 Debug: void SettingsWindow::loadTranslation(const QString&) "<System>" 
23:10:03:942 Debug: static void SettingsScope::Settings::setLanguage(const QString&) 
23:10:03:942 Debug: System locale "fr_FR" 
23:10:03:942 Debug: static void SettingsScope::Settings::setLanguage(const QString&) 
23:10:03:942 Warning: Fail load translation for locale "fr_FR" pathToLocale ":/translations/fr_FR" 
23:10:03:967 Debug: SettingsWindow::SettingsWindow(QWidget*) initialized 
23:10:03:967 Debug: void SettingsWindow::createTrayIcon() 

(process:7375): GLib-GObject-WARNING **: invalid (NULL) pointer instance

(process:7375): GLib-GObject-CRITICAL **: g_signal_connect_data: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed

(process:7375): GLib-CRITICAL **: g_hash_table_lookup: assertion 'hash_table != NULL' failed

(process:7375): GLib-CRITICAL **: g_hash_table_lookup: assertion 'hash_table != NULL' failed

(process:7375): GLib-CRITICAL **: g_hash_table_lookup: assertion 'hash_table != NULL' failed

(process:7375): GLib-CRITICAL **: g_hash_table_insert_internal: assertion 'hash_table != NULL' failed

(process:7375): GLib-CRITICAL **: g_hash_table_lookup: assertion 'hash_table != NULL' failed
Erreur de segmentation
chris-tina commented 9 years ago

Please try to start Prismatik as follows: prismatik -style gtk+

Deevad commented 9 years ago

Thank you @chris-tina for the tip.