SIGSEGV on the server when opening the Preferences dialog while players are connecting and receiving data
This appears to be a multithreading bug, it happened repeatedly to me. On the server, I loaded a scenario containing a couple of large images. It took minutes for the players to receive the data from the loaded scenario. During this time I could see the players in the Player List, but not their characters, and they said they couldn't see any of the maps.
While waiting, I wanted to check on my macros, so I hit Ctrl+P, which immediately caused this crash on the server:
Thread 1 "rolisteam" received signal SIGSEGV, Segmentation fault.
0x00007ffff7966724 in QApplication::setStyle(QStyle*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
(gdb) bt
#0 0x00007ffff7966724 in QApplication::setStyle(QStyle*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#1 0x000055555572b2ea in PreferencesDialog::updateTheme() ()
#2 0x000055555572e30d in PreferencesDialog::load() ()
#3 0x000055555572ebe9 in PreferencesDialog::show() ()
#4 0x00007ffff5ce89dc in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#5 0x00007ffff795c752 in QAction::triggered(bool) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#6 0x00007ffff795f39b in QAction::activate(QAction::ActionEvent) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#7 0x00007ffff795ff6d in QAction::event(QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#8 0x00007ffff7962f4e in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#9 0x00007ffff5cb1618 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#10 0x00007ffff696c93b in QShortcutMap::dispatchEvent(QKeyEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#11 0x00007ffff696d28b in QShortcutMap::tryShortcut(QKeyEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#12 0x00007ffff69154a6 in QWindowSystemInterface::handleShortcutEvent(QWindow*, unsigned long, int, QFlags<Qt::KeyboardModifier>, unsigned int, unsigned int, unsigned int, QString const&, bool, unsigned short) () from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#13 0x00007ffff693930d in QGuiApplicationPrivate::processKeyEvent(QWindowSystemInterfacePrivate::KeyEvent*) ()
from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#14 0x00007ffff6911ddc in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#15 0x00007ffff1efbe4a in ?? () from /usr/lib/x86_64-linux-gnu/libQt5XcbQpa.so.5
#16 0x00007ffff4d1e729 in g_main_context_dispatch () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#17 0x00007ffff4d1e9b8 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#18 0x00007ffff4d1ea4c in g_main_context_iteration () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#19 0x00007ffff5d091c6 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#20 0x00007ffff5cb009b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#21 0x00007ffff5cb8206 in QCoreApplication::exec() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#22 0x00005555555fa46c in main (argc=<optimized out>, argv=<optimized out>) at ../../client/main.cpp:207