#42545: QT client dumps core (maybe civil war) (civ2civ3, 3.0.0-beta2+ c9c390eba0) Open Date: 2021-06-17 21:53 Last Update: 2021-06-17 23:14 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-06-17 23:14 Updated by: chippo Comment: It is repeatable. If I start afresh (even after a new git pull which compiles quite a lot - now on XXX), start a server, load turn-81, start client and connect, play some moves, hit End Turn, see the civil war message, play some moves, click on Nations and get another core dump. I've managed to do it a few times, but can't find an exactly repeatable sequence. It looks identical to me, but I'll include it ('cos it's so easy to do): Core was generated by `./client/freeciv-qt'. Program terminated with signal SIGSEGV, Segmentation fault. #0 0x00007f728b88485e in ?? () from /lib/x86_64-linux-gnu/libQt5Core.so.5 [Current thread is 1 (Thread 0x7f72859e2b40 (LWP 126845))] (gdb) bt -full #0 0x00007f728b88485e in () at /lib/x86_64-linux-gnu/libQt5Core.so.5 #1 0x00007f728b884e46 in QSortFilterProxyModel::flags(QModelIndex const&) const () at /lib/x86_64-linux-gnu/libQt5Core.so.5 #2 0x00007f728b3244db in QAbstractItemView::setCurrentIndex(QModelIndex const&) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5 #3 0x00005642655a66af in plr_report::update_report(bool) (this=0x56426adaf290, update_selection=<optimized out>) at ../../../../src/client/gui-qt/plrdlg.cpp:822 qmi = {r = 6, c = 18, i = 94843258546976, m = 0x56426acf0040} player_count = 0 #4 0x00005642655c1af8 in fc_sidewidget::mousePressEvent(QMouseEvent*) (this=0x5642670d7e50, event=0x7fff5d04e930) at ../../../../src/client/gui-qt/sidebar.cpp:283 #5 0x00007f728b0ee5de in QWidget::event(QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5 #6 0x00007f728b0ab783 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5 #7 0x00007f728b0b2e5b in QApplication::notify(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5 #8 0x00007f728b8ba7ba in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Core.so.5 #9 0x00007f728b0b1e77 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool, bool) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5 #10 0x00007f728b108370 in () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5 #11 0x00007f728b10b615 in () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5 #12 0x00007f728b0ab783 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5 #13 0x00007f728b8ba7ba in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Core.so.5 #14 0x00007f728bc9fb13 in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) () at /lib/x86_64-linux-gnu/libQt5Gui.so.5 #15 0x00007f728bc74e2c in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib/x86_64-linux-gnu/libQt5Gui.so.5 #16 0x00007f7283e1fa6e in () at /lib/x86_64-linux-gnu/libQt5XcbQpa.so.5 #17 0x00007f72878a58eb in g_main_context_dispatch () at /lib/x86_64-linux-gnu/libglib-2.0.so.0 #18 0x00007f72878f8d28 in () at /lib/x86_64-linux-gnu/libglib-2.0.so.0 #19 0x00007f72878a3023 in g_main_context_iteration () at /lib/x86_64-linux-gnu/libglib-2.0.so.0 #20 0x00007f728b914204 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib/x86_64-linux-gnu/libQt5Core.so.5 #21 0x00007f728b8b911b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib/x86_64-linux-gnu/libQt5Core.so.5 #22 0x00007f728b8c1604 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 0x0000564265537511 in fc_client::fc_main(QApplication*) (this=this at entry=0x564266586d70, qapp=0x564266408ef0) at ../../../../src/client/gui-qt/fc_client.cpp:256 #24 0x000056426548862a in qtg_ui_main(int, char**) (argc=<optimized out>, argv=0x7fff5d04f398) at ../../../../src/client/gui-qt/gui_main.cpp:194 qpm = <optimized out> app_icon = {d = 0x56426722f9e0} #25 0x000056426548a7f4 in client_main (argc=1, argv=0x7fff5d04f398) 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 0x00007f728a9d5565 in __libc_start_main (main= 0x564265485f90 <main(int, char**)>, argc=1, argv=0x7fff5d04f398, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fff5d04f388) at ../csu/libc-start.c:332 self = <optimized out> result = <optimized out> unwind_buf = {cancel_jmp_buf = {{jmp_buf = {94843170051264, 5786756776578308431, 94843167078208, 0, 0, 0, -5787113799921641137, -5860408407642810033}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x1, 0x7fff5d04f398}, data = {prev = 0x0, cleanup = 0x0, canceltype = 1}}} not_first_call = <optimized out> #27 0x000056426548776e in _start () --------------------------------------------------------------------- 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