URL:
  <http://gna.org/bugs/?25037>

                 Summary: Crash after "Map topology and tileset incompatible"
error
                 Project: Freeciv
            Submitted by: jtn
            Submitted on: Sat 03 Sep 2016 09:08:50 PM BST
                Category: client-qt
                Severity: 3 - Normal
                Priority: 5 - Normal
                  Status: None
             Assigned to: None
        Originator Email: 
             Open/Closed: Open
                 Release: S2_6 r33744
         Discussion Lock: Any
        Operating System: GNU/Linux
         Planned Release: 2.6.0, 3.0.0
 Contains string changes: None

    _______________________________________________________

Details:

My S2_6 r33744 Qt client crashed on starting a new game, having popped up a
"Map topology and tileset incompatible" error.

It looks like it might have re-entered the network processing code while it's
put up the dialog, while not having got around to initialising the map?

This might be a symptom of an unusual freeciv-client-rc migration history -- I
had run an old S2_6 build (r30297 from Oct 2015) earlier today (after having
previously run recent S2_6), and noticed it doing some sort of client setting
migration, so my rc-file might be a bit odd -- it doesn't seem to mention the
per-topology tilesets, for instance, and has default_tileset_name="hexemplio",
where it wants to start a server with WRAPX|ISO, so perhaps that's where the
incompatibility arises. I don't know if there's a valid migration scenario
from 2.5 which will have similar results.

I think I've seen other crashes associated with this error popup, without
having done mad things to my rc-files.

Extract from "-d 3" client log:


3: in get_packet_from_connection() [packets.c::517]: got packet
type=(PACKET_MAP_INFO)17 len=9 from server
2: in tileset_error() [tilespec.c::581]: Map topology and tileset
incompatible.
...
3: in get_packet_from_connection() [packets.c::517]: got packet
type=(PACKET_TILE_INFO)15 len=24 from server
1: in handle_tile_info() [packhand.c::2764]: assertion '((void *)0) != ptile'
failed.
1: in handle_tile_info() [packhand.c::2764]: Invalid tile index 1998.
3: in get_packet_from_connection() [packets.c::517]: got packet
type=(PACKET_TILE_INFO)15 len=16 from server
1: in handle_tile_info() [packhand.c::2764]: assertion '((void *)0) != ptile'
failed.
1: in handle_tile_info() [packhand.c::2764]: Invalid tile index 1890.
...


Backtrace at segfault:


#0  0x00000000004f9fb9 in unit_list_prepend (pfoo=0x3ff2260, 
    tthis=<error reading variable: Cannot access memory at address 0x20>)
    at ../utility/speclist.h:272
No locals.
#1  handle_unit_packet_common (packet_unit=packet_unit@entry=0x3ff2260)
    at packhand.c:1750
        pcity = <optimised out>
        punit = 0x3ff2260
        need_menus_update = false
        need_economy_report_update = false
        need_units_report_update = false
        repaint_unit = false
        repaint_city = false
        old_tile = 0x0
        check_focus = false
        moved = false
        ret = false
        __FUNCTION__ = "handle_unit_packet_common"
#2  0x00000000004fc863 in handle_unit_info (packet=packet@entry=0x4001a70)
    at packhand.c:1439
        punit = 0x3ff2260
#3  0x0000000000504989 in client_handle_packet (
    type=type@entry=PACKET_UNIT_INFO, packet=packet@entry=0x4001a70)
    at packhand_gen.c:167
No locals.
#4  0x00000000004c609f in client_packet_input (packet=packet@entry=0x4001a70,

    type=63) at client_main.c:759
        __FUNCTION__ = "client_packet_input"
#5  0x00000000004ccf3c in input_from_server (fd=<optimised out>)
    at clinet.c:415
        type = PACKET_UNIT_INFO
        packet = 0x4001a70
        nb = <optimised out>
        __FUNCTION__ = "input_from_server"
#6  0x00007fd69c76e2a6 in QMetaObject::activate(QObject*, int, int, void**)
()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
No symbol table info available.
#7  0x00007fd69c7da57e in QSocketNotifier::activated(int,
QSocketNotifier::QPrivateSignal) () from
/usr/lib/x86_64-linux-gnu/libQt5Core.so.5
No symbol table info available.
#8  0x00007fd69c77a2a9 in QSocketNotifier::event(QEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
No symbol table info available.
#9  0x00007fd69bdf0c8c in QApplicationPrivate::notify_helper(QObject*,
QEvent*)
    () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
No symbol table info available.
#10 0x00007fd69bdf5e56 in QApplication::notify(QObject*, QEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
No symbol table info available.
#11 0x00007fd69c746c2d in QCoreApplication::notifyInternal(QObject*, QEvent*)
    () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
No symbol table info available.
#12 0x00007fd69c79442f in ?? () from
/usr/lib/x86_64-linux-gnu/libQt5Core.so.5
No symbol table info available.
#13 0x00007fd6969f1e04 in g_main_context_dispatch ()
   from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#14 0x00007fd6969f2048 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#15 0x00007fd6969f20ec in g_main_context_iteration ()
   from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#16 0x00007fd69c79398c in
QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
No symbol table info available.
#17 0x00007fd69c74596b in
QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from
/usr/lib/x86_64-linux-gnu/libQt5Core.so.5
No symbol table info available.
#18 0x00007fd69bfd7e0d in QDialog::exec() ()
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
No symbol table info available.
#19 0x000000000055c5be in show_tileset_error (
    msg=msg@entry=0x7fff8025ddb0 "Map topology and tileset incompatible.")
    at dialogs.cpp:2344
        ask = <incomplete type>
        buf = "Tileset problem, it's probably incompatible with the
ruleset:\nMap topology and tileset incompatible.\nProgram will now
exit.\000\000\000\000\000\v", '\000' <repeats 11 times>, "\377\377\377\377",
'\000' <repeats 16 times>, "\003", '\000' <repeats 19 times>,
"\377\177\000\000\000\000\000\000\377\177\000\000\030\000\000\000\060\000\000\000"...
#20 0x0000000000517209 in tileset_error (level=level@entry=LOG_NORMAL, 
    format=<optimised out>) at tilespec.c:584
        buf = "Map topology and tileset incompatible.\000\000\021", '\000'
<repeats 11 times>,
"\001\000\000\000\026\317\362\232\326\177\000\000\020\331\362\232\326\177",
'\000' <repeats 18 times>,
"b\344\362\232\326\177\000\000\000\000\000\000\000\000\000\000p\006\377\003",
'\000' <repeats 12 times>, "p\006\377\003", '\000' <repeats 12 times>,
"\200\343%\200\377\177\000\000\360\340%\200\377\177\000\000\000\000\000\000\000\000\000\000\003\000\000\000\000\000\000\000%\n\362\232\326\177\000\000p\006\377\003\000\000\000\000\003\000\000\000\000\000\000\000\200\343%\200\377\177\000\000"...
        args = {{gp_offset = 16, fp_offset = 48, 
            overflow_arg_area = 0x7fff8025e680, 
            reg_save_area = 0x7fff8025e5c0}}
        __FUNCTION__ = "tileset_error"
#21 0x00000000004fcc77 in handle_map_info (xsize=54, ysize=72, topology_id=5)
    at packhand.c:1953
No locals.
#22 0x0000000000504ae6 in client_handle_packet (
    type=type@entry=PACKET_MAP_INFO, packet=packet@entry=0x3607570)
    at packhand_gen.c:73
No locals.
#23 0x00000000004c609f in client_packet_input (packet=packet@entry=0x3607570,

    type=17) at client_main.c:759
        __FUNCTION__ = "client_packet_input"
#24 0x00000000004ccf3c in input_from_server (fd=<optimised out>)
    at clinet.c:415
        type = PACKET_MAP_INFO
        packet = 0x3607570
        nb = <optimised out>
        __FUNCTION__ = "input_from_server"
#25 0x00007fd69c76e2a6 in QMetaObject::activate(QObject*, int, int, void**)
()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
No symbol table info available.
#26 0x00007fd69c7da57e in QSocketNotifier::activated(int,
QSocketNotifier::QPrivateSignal) () from
/usr/lib/x86_64-linux-gnu/libQt5Core.so.5
No symbol table info available.
#27 0x00007fd69c77a2a9 in QSocketNotifier::event(QEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
No symbol table info available.
#28 0x00007fd69bdf0c8c in QApplicationPrivate::notify_helper(QObject*,
QEvent*)
    () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
No symbol table info available.
#29 0x00007fd69bdf5e56 in QApplication::notify(QObject*, QEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
No symbol table info available.
#30 0x00007fd69c746c2d in QCoreApplication::notifyInternal(QObject*, QEvent*)
    () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
No symbol table info available.
#31 0x00007fd69c79442f in ?? () from
/usr/lib/x86_64-linux-gnu/libQt5Core.so.5
No symbol table info available.
#32 0x00007fd6969f1e04 in g_main_context_dispatch ()
   from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#33 0x00007fd6969f2048 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#34 0x00007fd6969f20ec in g_main_context_iteration ()
   from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#35 0x00007fd69c79398c in
QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
No symbol table info available.
#36 0x00007fd69c74596b in
QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from
/usr/lib/x86_64-linux-gnu/libQt5Core.so.5
No symbol table info available.
#37 0x00007fd69c74c0e1 in QCoreApplication::exec() ()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
No symbol table info available.
#38 0x000000000047894e in fc_client::main (this=this@entry=0x2624400, 
    qapp=0x22f5c90) at fc_client.cpp:220
No locals.
#39 0x0000000000479542 in qtg_ui_main (argc=1, argv=<optimised out>)
    at gui_main.cpp:184
        qpm = <optimised out>
        app_icon = {d = 0x2c02840}
#40 0x00000000004c6793 in client_main (argc=1, argv=0x7fff8025f198)
    at client_main.c:677
        i = 5
        loglevel = LOG_VERBOSE
        ui_options = <optimised out>
        ui_separator = <optimised out>
        option = <optimised out>
        fatal_assertions = -1
        aii = 1
        __FUNCTION__ = "client_main"
#41 0x00007fd69aed4f45 in __libc_start_main (
    main=0x478320 <main(int, char**)>, argc=5, argv=0x7fff8025f198, 
    init=<optimised out>, fini=<optimised out>, rtld_fini=<optimised out>, 
    stack_end=0x7fff8025f188) at libc-start.c:287
        result = <optimised out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {0, -130520897101257256, 
                4688612, 140735343358352, 0, 0, 130406083658491352, 
                116387931907270104}, mask_was_saved = 0}}, priv = {pad = {0x0,

              0x0, 0x6cb850 <__libc_csu_init>, 0x7fff8025f198}, data = {
              prev = 0x0, cleanup = 0x0, canceltype = 7125072}}}
        not_first_call = <optimised out>
#42 0x0000000000478b0d in _start ()
No symbol table info available.




    _______________________________________________________

File Attachments:


-------------------------------------------------------
Date: Sat 03 Sep 2016 09:08:50 PM BST  Name: freeciv-client-rc-2.6  Size: 11kB
  By: jtn

<http://gna.org/bugs/download.php?file_id=28559>
-------------------------------------------------------
Date: Sat 03 Sep 2016 09:08:50 PM BST  Name: 26-tileset-topo.log.xz  Size:
19kB   By: jtn

<http://gna.org/bugs/download.php?file_id=28560>

    _______________________________________________________

Reply to this item at:

  <http://gna.org/bugs/?25037>

_______________________________________________
  Message sent via/by Gna!
  http://gna.org/


_______________________________________________
Freeciv-dev mailing list
Freeciv-dev@gna.org
https://mail.gna.org/listinfo/freeciv-dev

Reply via email to