Project

Profile

Help

HostedRedmine.com has moved to the Planio platform. All logins and passwords remained the same. All users will be able to login and use Redmine just as before. Read more...

Bug #858251

SEGV in name_translation_get (2.6.1+, qt)

Added by Chippo Elder over 1 year ago. Updated 11 months ago.

Status:
Closed
Priority:
Normal
Category:
gui-qt
Sprint/Milestone:
Start date:
Due date:
% Done:

0%

Estimated time:

Description

I was trying to trigger #858212 (you can see all the tileset loads in the transcript) without success. I decided to try something in the gtk client while in a Start Game screen and I hit Disconnect. Got the following dump-thingy:

chippo@chippo-Aspire-V3-731:~$ ASAN_OPTIONS="abort_on_error=1:disable_coredump=0:unmap_shadow_on_exit=1" freeciv-qt-26
2: Loading tileset "amplio2".
2: Loading tileset "delta2".
QSocketNotifier: Invalid socket 41 and type 'Read', disabling...
2: Loading tileset "amplio2".
2: Loading tileset "delta2".
2: Loading tileset "amplio2".
2: Loading tileset "amplio_earth".
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
QSocketNotifier: Invalid socket 41 and type 'Read', disabling...
qt.qpa.xcb: QXcbConnection: XCB error: 3 (BadWindow), sequence: 15998, resource id: 18906179, major code: 40 (TranslateCoords), minor code: 0
2: Loading tileset "amplio2".
2: Loading tileset "delta2".
2: Loading tileset "trident".
2: Loading tileset "amplio2".
QSocketNotifier: Invalid socket 41 and type 'Read', disabling...
2: last message repeated 2 times
AddressSanitizer:DEADLYSIGNAL
=================================================================
==256157==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000078 (pc 0x00000082e0d4 bp 0x7ffc9e059090 sp 0x7ffc9e059090 T0)
==256157==The signal is caused by a READ memory access.
@==256157==Hint: address points to the zero page.
#0 0x82e0d3 in name_translation_get /home/chippo/Downloads/git_clones/freeciv/common/./name_translation.h:123:18
#1 0x82deec in nation_plural_translation /home/chippo/Downloads/git_clones/freeciv/common/nation.c:161:10
#2 0x82e140 in nation_plural_for_player /home/chippo/Downloads/git_clones/freeciv/common/nation.c:179:10
#3 0x539211 in show_new_turn_info() /home/chippo/Downloads/git_clones/freeciv/client/gui-qt/hudwidget.cpp:1664:19
#4 0x55682e in qt_start_turn() /home/chippo/Downloads/git_clones/freeciv/client/gui-qt/menu.cpp:78:3
#5 0x55042e in qtg_update_timeout_label() /home/chippo/Downloads/git_clones/freeciv/client/gui-qt/mapview.cpp:1086:5
#6 0x50d789 in update_timeout_label /home/chippo/Downloads/git_clones/freeciv/client/gui_interface.c:519:3
#7 0x5fa7cf in stop_turn_change_wait /home/chippo/Downloads/git_clones/freeciv/client/client_main.c:1131:3
#8 0x603c82 in disconnect_from_server /home/chippo/Downloads/git_clones/freeciv/client/clinet.c:307:3
#9 0x7435cf in fc_client::slot_disconnect() /home/chippo/Downloads/git_clones/freeciv/client/gui-qt/fc_client.cpp:497:5
#10 0x556566 in QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, void (fc_client::*)()>::call(void (fc_client::*)(), fc_client*, void**) /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:152:13
#11 0x556488 in void QtPrivate::FunctionPointer<void (fc_client::*)()>::call<QtPrivate::List<>, void>(void (fc_client::*)(), fc_client*, void**) /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:185:13
#12 0x5563a7 in QtPrivate::QSlotObject<void (fc_client::*)(), QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:414:17
#13 0x7fcff488c5c7 in QMetaObject::activate(QObject*, int, int, void**) (/usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x2b15c7)
#14 0x7fcff41a1235 in QAbstractButton::clicked(bool) (/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x25f235)
#15 0x7fcff41a145d (/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x25f45d)
#16 0x7fcff41a28a2 (/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x2608a2)
#17 0x7fcff41a2a64 in QAbstractButton::mouseReleaseEvent(QMouseEvent*) (/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x260a64)
#18 0x7fcff40ef04d in QWidget::event(QEvent*) (/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x1ad04d)
#19 0x7fcff40aca85 in QApplicationPrivate::notify_helper(QObject*, QEvent*) (/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x16aa85)
#20 0x7fcff40b6052 in QApplication::notify(QObject*, QEvent*) (/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x174052)
#21 0x7fcff4860a99 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (/usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x285a99)
#22 0x7fcff40b5156 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool, bool) (/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x173156)
#23 0x7fcff410b14c (/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x1c914c)
#24 0x7fcff410dfdb (/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x1cbfdb)
#25 0x7fcff40aca85 in QApplicationPrivate::notify_helper(QObject*, QEvent*) (/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x16aa85)
#26 0x7fcff40b5dff in QApplication::notify(QObject*, QEvent*) (/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x173dff)
#27 0x7fcff4860a99 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (/usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x285a99)
#28 0x7fcff4c48d72 in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) (/usr/lib/x86_64-linux-gnu/libQt5Gui.so.5+0x126d72)
#29 0x7fcff4c4a5fa in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) (/usr/lib/x86_64-linux-gnu/libQt5Gui.so.5+0x1285fa)
#30 0x7fcff4c2426a in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) (/usr/lib/x86_64-linux-gnu/libQt5Gui.so.5+0x10226a)
#31 0x7fcfda98728d (/usr/lib/x86_64-linux-gnu/libQt5XcbQpa.so.5+0x7928d)
#32 0x7fcff233384c in g_main_context_dispatch (/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0+0x5184c)
#33 0x7fcff2333acf (/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0+0x51acf)
#34 0x7fcff2333b72 in g_main_context_iteration (/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0+0x51b72)
#35 0x7fcff48b86a4 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (/usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x2dd6a4)
#36 0x7fcff485f63a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (/usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x28463a)
#37 0x7fcff48673a5 in QCoreApplication::exec() (/usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x28c3a5)
#38 0x7422e0 in fc_client::fc_main(QApplication*) /home/chippo/Downloads/git_clones/freeciv/client/gui-qt/fc_client.cpp:257:3
#39 0x50db07 in qtg_ui_main(int, char**) /home/chippo/Downloads/git_clones/freeciv/client/gui-qt/gui_main.cpp:191:17
#40 0x50d3c9 in ui_main /home/chippo/Downloads/git_clones/freeciv/client/gui_interface.c:59:3
#41 0x5f93d6 in client_main /home/chippo/Downloads/git_clones/freeciv/client/client_main.c:685:3
#42 0x50d8da in main /home/chippo/Downloads/git_clones/freeciv/client/gui-qt/gui_main.cpp:114:10
#43 0x7fcff3b3a1e2 in __libc_start_main /build/glibc-4WA41p/glibc-2.30/csu/../csu/libc-start.c:308:16
#44 0x46341d in _start (/usr/local/bin/freeciv-qt-26+0x46341d)

AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: SEGV /home/chippo/Downloads/git_clones/freeciv/common/./name_translation.h:123:18 in name_translation_get
@==256157==ABORTING
Aborted (core dumped)

And GDB's contribution:

Core was generated by `freeciv-qt-26'.
Program terminated with signal SIGABRT, Aborted.
#0 _GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
50 ../sysdeps/unix/sysv/linux/raise.c: No such file or directory.
[Current thread is 1 (Thread 0x7fcfeeed6ac0 (LWP 256157))]
(gdb) bt full
#0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
set = {
_val = {0, 5106555, 895, 0, 0, 281470681751424, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}
pid = <optimized out>
tid = <optimized out>
#1 0x00007fcff3b38899 in __GI_abort () at abort.c:79
save_stage = 1
act = {__sigaction_handler = {sa_handler = 0x0, sa_sigaction = 0x0}, sa_mask = {__val = {0, 1024, 5187702, 13733576, 140531153141536, 2, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0}}, sa_flags = 0, sa_restorer = 0xc86a68 <__asan::error_message_buf_mutex>}
sigs = {__val = {32, 0 <repeats 15 times>}}
#2 0x00000000004f8e27 in ()
#3 0x00000000004f7801 in ()
#4 0x00000000004df389 in ()
#5 0x00000000004df013 in _asan::ReportDeadlySignal(_sanitizer::SignalContext const&) ()
#6 0x00000000004de9c3 in _asan::AsanOnDeadlySignal(int, void*, void*) ()
#7 0x00007fcff3d44540 in <signal handler called> () at /lib/x86_64-linux-gnu/libpthread.so.0
#8 0x000000000082e0d4 in name_translation_get (ptrans=0x78) at ./name_translation.h:123
#9 0x000000000082deed in nation_plural_translation (pnation=<optimized out>) at nation.c:161
#10 0x000000000082e141 in nation_plural_for_player (pplayer=<optimized out>) at nation.c:179
#11 0x0000000000539212 in show_new_turn_info() () at hudwidget.cpp:1664
s = {static null = {<No data fields>}, d = 0x100013c03218}
close_list = <optimized out>
i = <optimized out>
research = <optimized out>
ht = <optimized out>
#12 0x000000000055682f in qt_start_turn() () at menu.cpp:78
#13 0x000000000055042f in qtg_update_timeout_label() () at mapview.cpp:1086
#14 0x000000000050d78a in update_timeout_label () at gui_interface.c:519
#15 0x00000000005fa7d0 in stop_turn_change_wait () at client_main.c:1131
#16 0x0000000000603c83 in disconnect_from_server () at clinet.c:307
#17 0x00000000007435d0 in fc_client::slot_disconnect() (this=0x61b0000d3c80) at fc_client.cpp:497
#18 0x0000000000556567 in QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, void (fc_client::*)()>::call(void (fc_client::*)(), fc_client*, void**) (f=<optimized out>, o=<optimized out>, arg=<optimized out>) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:152
#19 0x0000000000556489 in QtPrivate::FunctionPointer<void (fc_client::*)()>::call<QtPrivate::List<>, void>(void (fc_client::*)(), fc_client*, void**)
(f=(void (fc_client::*)(class fc_client * const)) 0x78, this adjustment 140531153055968, o=0x33b, arg=0x33a)
at /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:185
#20 0x00000000005563a8 in QtPrivate::QSlotObject<void (fc_client::*)(), QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*)
(which=<optimized out>, this
=0x603000577600, r=0x33b, a=0x33a, ret=0x40) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:414
#21 0x00007fcff488c5c8 in QMetaObject::activate(QObject*, int, int, void**) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#22 0x00007fcff41a1236 in QAbstractButton::clicked(bool) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#23 0x00007fcff41a145e in () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#24 0x00007fcff41a28a3 in () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#25 0x00007fcff41a2a65 in QAbstractButton::mouseReleaseEvent(QMouseEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#26 0x00007fcff40ef04e in QWidget::event(QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
--Type <RET> for more, q to quit, c to continue without paging--c
#27 0x00007fcff40aca86 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#28 0x00007fcff40b6053 in QApplication::notify(QObject*, QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#29 0x00007fcff4860a9a in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#30 0x00007fcff40b5157 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool, bool) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#31 0x00007fcff410b14d in () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#32 0x00007fcff410dfdc in () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#33 0x00007fcff40aca86 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#34 0x00007fcff40b5e00 in QApplication::notify(QObject*, QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#35 0x00007fcff4860a9a in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#36 0x00007fcff4c48d73 in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#37 0x00007fcff4c4a5fb in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#38 0x00007fcff4c2426b in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#39 0x00007fcfda98728e in () at /usr/lib/x86_64-linux-gnu/libQt5XcbQpa.so.5
#40 0x00007fcff233384d in g_main_context_dispatch () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#41 0x00007fcff2333ad0 in () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#42 0x00007fcff2333b73 in g_main_context_iteration () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#43 0x00007fcff48b86a5 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#44 0x00007fcff485f63b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#45 0x00007fcff48673a6 in QCoreApplication::exec() () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#46 0x00000000007422e1 in fc_client::fc_main(QApplication*) (this=<optimized out>, qapp=<optimized out>) at fc_client.cpp:257
#47 0x000000000050db08 in qtg_ui_main(int, char**) (argc=<optimized out>, argv=<optimized out>) at gui_main.cpp:191
app_icon = <optimized out>
qpm = <optimized out>
#48 0x000000000050d3ca in ui_main (argc=120, argv=0x7fcff57530e0) at gui_interface.c:59
#49 0x00000000005f93d7 in client_main (argc=1, argv=<optimized out>) at client_main.c:685
loglevel = <optimized out>
fatal_assertions = -1
option = <optimized out>
ui_separator = <optimized out>
ui_options = <optimized out>
aii = 1
i = <optimized out>
#50 0x000000000050d8db in main(int, char**) (argc=120, argv=0x7fcff57530e0) at gui_main.cpp:114


Related issues

Related to Freeciv - Bug #857974: Qt client with -t augmentedi dumps core (2.6.1+)Closed

<a title="Actions" class="icon-only icon-actions js-contextmenu" href="#">Actions</a>

History

#1 Updated by Jacob Nevins over 1 year ago

#12 0x000000000055682f in qt_start_turn() () at menu.cpp:78
#13 0x000000000055042f in qtg_update_timeout_label() () at mapview.cpp:1086

This is the same signature cazfi notes in #857974-1, so it's probably related.

#2 Updated by Jacob Nevins over 1 year ago

  • Related to Bug #857974: Qt client with -t augmentedi dumps core (2.6.1+) added

#3 Updated by Marko Lindqvist over 1 year ago

  • Category set to gui-qt
  • Status changed from New to In Progress
  • Sprint/Milestone set to 2.6.3

#4 Updated by Marko Lindqvist over 1 year ago

  • Status changed from In Progress to Closed
  • Assignee set to Marko Lindqvist

Jacob Nevins wrote:

This is the same signature cazfi notes in #857974-1, so it's probably related.

Fixed in Bug #857974

#5 Updated by Marko Lindqvist 11 months ago

  • Sprint/Milestone changed from 2.6.3 to 2.6.2.1

Also available in: Atom PDF