#42545: QT client dumps core (maybe civil war) (civ2civ3, 3.0.0-beta2+ c9c390eba0) Open Date: 2021-06-17 22:53 Last Update: 2021-09-22 06:08 URL for this Ticket: https://osdn.net//projects/freeciv/ticket/42545 RSS feed for this Ticket: https://osdn.net/ticket/ticket_rss.php?group_id=12505&tid=42545 --------------------------------------------------------------------- Last Changes/Comment on this Ticket: 2021-09-22 06:08 Updated by: cazfi Comment: I couldn't reproduce the crash, but from the backtrace it seems like it's crashing when sorting of the players dialog is automatically triggered from changes made in plr_report::update_report(). Attaching a patch (for S3_0) that I guess could help (makes sure that new player from civil war is properly included to the report before trying to sort it in inconsistent state). --------------------------------------------------------------------- Ticket Status: Reporter: chippo Owner: (None) Type: Bugs Status: Open Priority: 5 - Medium MileStone: (None) Component: Qt-client Severity: 5 - Medium Resolution: None --------------------------------------------------------------------- Ticket details: I hit End Turn; I saw in the (qt) message box something about a civil war, and then the qt client disappeared with a core dump. I had the above version plus cazfi's trade-route-bonus patch and alain's more-columns-in-Nations patch. The server seemed cool and it's console sed: Game saved as freeciv-T0080-Y-0525-auto.sav.xz > Game saved as freeciv-T0081-Y-0500-auto.sav.xz > Player 'Milton Cato' now has AI skill level 'Hard'. Game saved as freeciv-T0082-Y-0475-auto.sav.xz > 2: Lost connection: chippo from localhost (client disconnected) (player Petar Krešimir IV). Reconnecting, endgames, load games, restarting server all do not repeat the core dump, but I will attach that turn 81 savegame, anyway. Backtrace: Core was generated by `./client/freeciv-qt'. Program terminated with signal SIGSEGV, Segmentation fault. #0 0x00007fa9b5fb485b in ?? () from /lib/x86_64-linux-gnu/libQt5Core.so.5 [Current thread is 1 (Thread 0x7fa9b0112b40 (LWP 5728))] (gdb) bt -full #0 0x00007fa9b5fb485b in () at /lib/x86_64-linux-gnu/libQt5Core.so.5 #1 0x00007fa9b5fb4e46 in QSortFilterProxyModel::flags(QModelIndex const&) const () at /lib/x86_64-linux-gnu/libQt5Core.so.5 #2 0x00007fa9b5a544db in QAbstractItemView::setCurrentIndex(QModelIndex const&) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5 #3 0x000055a213b986af in plr_report::update_report(bool) (this=0x7fa9980c0750, update_selection=<optimized out>) at ../../../../src/client/gui-qt/plrdlg.cpp:822 qmi = {r = 14, c = 18, i = 94154743327184, m = 0x55a21932af40} player_count = 0 #4 0x000055a213bb3af8 in fc_sidewidget::mousePressEvent(QMouseEvent*) (this=0x55a215a97620, event=0x7fff3a87d3b0) at ../../../../src/client/gui-qt/sidebar.cpp:283 #5 0x00007fa9b581e5de in QWidget::event(QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5 #6 0x00007fa9b57db783 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5 #7 0x00007fa9b57e2e5b in QApplication::notify(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5 #8 0x00007fa9b5fea7ba in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Core.so.5 #9 0x00007fa9b57e1e77 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool, bool) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5 #10 0x00007fa9b5838370 in () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5 #11 0x00007fa9b583b615 in () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5 #12 0x00007fa9b57db783 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5 #13 0x00007fa9b5fea7ba in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Core.so.5 #14 0x00007fa9b63cfb13 in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) () at /lib/x86_64-linux-gnu/libQt5Gui.so.5 #15 0x00007fa9b63a4e2c in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib/x86_64-linux-gnu/libQt5Gui.so.5 #16 0x00007fa9ae556a6e in () at /lib/x86_64-linux-gnu/libQt5XcbQpa.so.5 #17 0x00007fa9b1fd58eb in g_main_context_dispatch () at /lib/x86_64-linux-gnu/libglib-2.0.so.0 #18 0x00007fa9b2028d28 in () at /lib/x86_64-linux-gnu/libglib-2.0.so.0 #19 0x00007fa9b1fd3023 in g_main_context_iteration () at /lib/x86_64-linux-gnu/libglib-2.0.so.0 #20 0x00007fa9b6044204 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib/x86_64-linux-gnu/libQt5Core.so.5 #21 0x00007fa9b5fe911b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib/x86_64-linux-gnu/libQt5Core.so.5 #22 0x00007fa9b5ff1604 in QCoreApplication::exec() () at /lib/x86_64-linux-gnu/libQt5Core.so.5 --Type <RET> for more, q to quit, c to continue without paging-- #23 0x000055a213b29511 in fc_client::fc_main(QApplication*) (this=this at entry=0x55a214f472b0, qapp=0x55a214dc8f10) at ../../../../src/client/gui-qt/fc_client.cpp:256 #24 0x000055a213a7a62a in qtg_ui_main(int, char**) (argc=<optimized out>, argv=0x7fff3a87de18) at ../../../../src/client/gui-qt/gui_main.cpp:194 qpm = <optimized out> app_icon = {d = 0x55a215bf0810} #25 0x000055a213a7c7f4 in client_main (argc=1, argv=0x7fff3a87de18) at ../../../src/client/client_main.c:685 i = 1 loglevel = LOG_NORMAL ui_options = <optimized out> ui_separator = <optimized out> option = <optimized out> fatal_assertions = -1 aii = 1 __FUNCTION__ = "client_main" #26 0x00007fa9b5105565 in __libc_start_main (main= 0x55a213a77f90 <main(int, char**)>, argc=1, argv=0x7fff3a87de18, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fff3a87de08) at ../csu/libc-start.c:332 self = <optimized out> result = <optimized out> unwind_buf = {cancel_jmp_buf = {{jmp_buf = {94154605786016, 2930739386275587367, 94154602813248, 0, 0, 0, -2931167166183774937, -2882451297501977305}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x1, 0x7fff3a87de18}, data = {prev = 0x0, cleanup = 0x0, canceltype = 1}}} not_first_call = <optimized out> #27 0x000055a213a7976e in _start () Just before the core dump, I was thinking: Civil War! I have Marco Polo's! There was some bug regarding having Marco Polo's and the meeting of the new player. Now is a good time to see whether that bug is fixed. But then the core dump happened. And then I remembered that the marco-new-player bug didn't cause a core dump, was resolved after another turn and was seen under gtk. -- Ticket information of Freeciv project Freeciv Project is hosted on OSDN Project URL: https://osdn.net/projects/freeciv/ OSDN: https://osdn.net URL for this Ticket: https://osdn.net/projects/freeciv/ticket/42545 RSS feed for this Ticket: https://osdn.net/ticket/ticket_rss.php?group_id=12505&tid=42545