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

                 Summary: Client segfault in fill_grid_sprite_array on server
shutdown
                 Project: Freeciv
            Submitted by: jtn
            Submitted on: Sat Dec 28 14:17:11 2013
                Category: client-gtk-2.0
                Severity: 3 - Normal
                Priority: 5 - Normal
                  Status: None
             Assigned to: None
        Originator Email: 
             Open/Closed: Open
                 Release: S2_4 r23906
         Discussion Lock: Any
        Operating System: GNU/Linux
         Planned Release: 2.4.2

    _______________________________________________________

Details:

I've been following the progress of an autogame by starting a separate server
with autogame savefiles, connecting a client to it, and then using the editor
to switch between global observer and AI players.

Sometimes, when I quit the server with the client still attached, the client
segfaults. In at least this last case, the client was connected as one of the
AI players (Oscar II) at the time of quit, not a global observer.

Savefile attached, but it seemed to occur intermittently on many savefiles
from this autogame.


#0  0x00000000004b5702 in fill_grid_sprite_array (t=0x13742a0,
sprs=0x7fffd44383e8, ptile=<optimised out>, pedge=0x7fffd4438c20,
citymode=0x0, pcorner=<optimised out>, punit=<optimised out>, pcity=<optimised
out>) at tilespec.c:4372
        plrid = <optimised out>
        owner0 = <optimised out>
        owner1 = <optimised out>
        known = {true, true}
        unit = {false, false}
        worked = {false, false}
        pfocus_units = 0x808a0b0
        city = {false, false}
        saved_sprs = 0x7fffd44383d0
#1  0x00000000004b7176 in fill_sprite_array (t=<optimised out>,
sprs=0x7fffd44383d0, layer=LAYER_GRID1, ptile=0x0, pedge=0x7fffd4438c20,
pcorner=0x0, punit=0x0, pcity=0x0, citymode=0x0, putype=0x0) at
tilespec.c:4792
        tileno = <optimised out>
        tspecial_near = {{vec = "\005"}, {vec = "\000\b"}, {vec = "\000"},
{vec = "\000"}, {vec = "\000"}, {vec = "\000"}, {vec = "\000"}, {vec =
"\000"}}
        tspecial = {vec = "\000"}
        tterrain_near = {0x9d2570, 0x9d1d28, 0x9d1ed0, 0x9d1d28, 0x9d1ed0,
0x9d1d28, 0x9d1d28, 0x9d1ed0}
        pterrain = 0x0
        save_sprs = 0x7fffd44383d0
        owner = 0x0
        do_draw_unit = false
        solid_bg = false
        __FUNCTION__ = "fill_sprite_array"
#2  0x000000000048b9a6 in put_one_element (pcanvas=0x15db490, layer=<optimised
out>, ptile=0x0, pedge=<optimised out>, pcorner=<optimised out>,
punit=<optimised out>, pcity=0x0, canvas_x=723, canvas_y=258, citymode=0x0,
putype=0x0) at mapview_common.c:957
        tile_sprs = {{foggable = false, sprite = 0x63558c0, offset_x = 0,
offset_y = 0}, {foggable = false, sprite = 0x184da40, offset_x = 0, offset_y =
0}, {foggable = false, sprite = 0x14c9560, offset_x = 0, offset_y = 0},
{foggable = false, sprite = 0x5c9ba80, offset_x = 0, offset_y = 12}, {foggable
= false, sprite = 0x19f0970, offset_x = 0, offset_y = 0}, {foggable = false,
sprite = 0x4366ab0, offset_x = 0, offset_y = 0}, {foggable = false, sprite =
0x62e0560, offset_x = 48, offset_y = 24}, {foggable = false, sprite =
0xb9a46b0, offset_x = 0, offset_y = 0}, {foggable = 64, sprite = 0xadcf650,
offset_x = 1, offset_y = 0}, {foggable = 16, sprite = 0xadcf640, offset_x =
22964352, offset_y = 0}, {foggable = false, sprite = 0x208f0b0, offset_x = 0,
offset_y = 0}, {foggable = 196, sprite = 0x208f020, offset_x = 182253120,
offset_y = 0}, {foggable = 32, sprite = 0x7f3d48580eb5, offset_x = 119696704,
offset_y = 0}, {foggable = 233, sprite = 0x0, offset_x = 1213711170, offset_y
= 32573}, {foggable = false, sprite = 0x7f3d48583270, offset_x = 0, offset_y =
0}, {foggable = 49, sprite = 0x208f020, offset_x = 34215936, offset_y = 0},
{foggable = 240, sprite = 0x20305c0, offset_x = 34157824, offset_y = 0},
{foggable = 188, sprite = 0x42612e0, offset_x = 1213731023, offset_y = 32573},
{foggable = 184, sprite = 0x7f3d47dd8255, offset_x = 0, offset_y = 0},
{foggable = 16, sprite = 0x0, offset_x = 1226717561, offset_y = 32573},
{foggable = false, sprite = 0x7f3d491c0c51, offset_x = 34157824, offset_y =
0}, {foggable = 81, sprite = 0x13, offset_x = 131869968, offset_y = 0},
{foggable = 56, sprite = 0x0, offset_x = 182937120, offset_y = 0}, {foggable =
false, sprite = 0x0, offset_x = 0, offset_y = 0}, {foggable = false, sprite =
0x0, offset_x = 0, offset_y = 0}, {foggable = 35, sprite = 0x0, offset_x =
304, offset_y = 0}, {foggable = false, sprite = 0x14a0e60, offset_x =
21630560, offset_y = 0}, {foggable = 96, sprite = 0x7fffd4438878, offset_x =
1226716641, offset_y = 32573}, {foggable = 96, sprite = 0x7f3d47ba0df2,
offset_x = 0, offset_y = 0}, {foggable = 64, sprite = 0x4, offset_x =
1199807776, offset_y = 633}, {foggable = 8, sprite = 0x7fffd4438a00, offset_x
= -733771456, offset_y = 32767}, {foggable = 192, sprite = 0x0, offset_x =
102, offset_y = 0}, {foggable = 48, sprite = 0x7f3d4783b6fe, offset_x = 0,
offset_y = 1072693248}, {foggable = 240, sprite = 0x79873a0, offset_x =
1226407459, offset_y = 32573}, {foggable = 128, sprite = 0xa251308, offset_x =
-733772064, offset_y = 32767}, {foggable = 20, sprite = 0x7fffd44388c0,
offset_x = -733771472, offset_y = 32767}, {foggable = 72, sprite =
0x7f3d47bac765, offset_x = 0, offset_y = 0}, {foggable = 106, sprite =
0x7fffd44388c0, offset_x = 1203181344, offset_y = 32573}, {foggable = 2,
sprite = 0x0, offset_x = 1216686729, offset_y = 32573}, {foggable = true,
sprite = 0x0, offset_x = -733771512, offset_y = 32767}, {foggable = 2, sprite
= 0x1, offset_x = 128801024, offset_y = 0}, {foggable = true, sprite = 0x0,
offset_x = 1200368059, offset_y = 32573}, {foggable = false, sprite =
0x7ad5900, offset_x = 128801024, offset_y = 0}, {foggable = false, sprite =
0x7ad5900, offset_x = 128801025, offset_y = 0}, {foggable = 100, sprite =
0x7ad5900, offset_x = 128801124, offset_y = 0}, {foggable = false, sprite =
0x0, offset_x = 21641776, offset_y = 0}, {foggable = 240, sprite = 0x0,
offset_x = 21831584, offset_y = 0}, {foggable = false, sprite = 0x0, offset_x
= 1141050284, offset_y = 32573}, {foggable = false, sprite = 0x15df160,
offset_x = 146, offset_y = 0}, {foggable = false, sprite = 0x14a3a30, offset_x
= 64, offset_y = 0}, {foggable = 153, sprite = 0x7f3d4402e73b, offset_x = 0,
offset_y = 0}, {foggable = 32, sprite = 0x14a3a30, offset_x = 22018560,
offset_y = 0}, {foggable = 48, sprite = 0x7f3d462a2b9a, offset_x = 0, offset_y
= 0}, {foggable = 96, sprite = 0x20267b0, offset_x = 1226714582, offset_y =
32573}, {foggable = 96, sprite = 0x0, offset_x = 1, offset_y = 0}, {foggable =
109, sprite = 0x209bc30, offset_x = 104406704, offset_y = 0}, {foggable = 32,
sprite = 0x14c3bf0, offset_x = 21641776, offset_y = 0}, {foggable = false,
sprite = 0x14a3a30, offset_x = 1177168794, offset_y = 32573}, {foggable = 255,
sprite = 0x14d1fa0, offset_x = 116, offset_y = 0}, {foggable = 167, sprite =
0x3014fca20, offset_x = 67109601, offset_y = 0}, {foggable = 226, sprite =
0x4028699, offset_x = 496, offset_y = 0}, {foggable = 4, sprite = 0x4153710,
offset_x = 4, offset_y = 0}, {foggable = 96, sprite = 0x4153700, offset_x =
21641776, offset_y = 0}, {foggable = false, sprite = 0x14a3a30, offset_x =
1177170059, offset_y = 32573}, {foggable = 48, sprite = 0x14ffa00, offset_x =
67271229, offset_y = 0}, {foggable = 15, sprite = 0x14fcac0, offset_x =
104348416, offset_y = 0}, {foggable = 32, sprite = 0x14fcac0, offset_x = 795,
offset_y = 0}, {foggable = 38, sprite = 0x1, offset_x = 1210393797, offset_y =
32573}, {foggable = 72, sprite = 0x48, offset_x = 1, offset_y = 0}, {foggable
= 209, sprite = 0x14c3bf0, offset_x = 194775088, offset_y = 96}, {foggable =
192, sprite = 0x7f3d4825fe5f, offset_x = 96, offset_y = 0}, {foggable = 48,
sprite = 0x14f3c70, offset_x = 22006464, offset_y = 0}, {foggable = 27, sprite
= 0x126, offset_x = 1, offset_y = 0}, {foggable = 197, sprite = 0x48, offset_x
= 2, offset_y = 0}, {foggable = true, sprite = 0x7f3d48256bd1, offset_x =
21773296, offset_y = 0}, {foggable = 128, sprite = 0x14fcac0, offset_x =
4676123, offset_y = 0}, {foggable = false, sprite = 0xb25be60, offset_x = 0,
offset_y = 0}, {foggable = 155, sprite = 0x13742a0, offset_x = 187031584,
offset_y = 0}, {foggable = false, sprite = 0x15db490, offset_x = 795, offset_y
= 0}, {foggable = 70, sprite = 0xa2, offset_x = 7, offset_y = 0}}
        count = <optimised out>
#3  0x000000000048f37c in update_map_canvas (canvas_x=795, canvas_y=294,
width=96, height=72) at mapview_common.c:1347
        cx = 723
        cy = 258
        gui_x = <optimised out>
        gui_y = <optimised out>
        ptile = 0x0
        pedge = <optimised out>
        pcorner = <optimised out>
        ptile_r1 = 2
        ptile_y0 = 151
        ptile_index = <optimised out>
        ptile_yi = <optimised out>
        ptile_r2 = 4
        ptile_w = 96
        ptile_x0 = -27
        ptile_y1 = <optimised out>
        ptile_count = 77
        ptile_xi = <optimised out>
        ptile_di = <optimised out>
        ptile_h = 48
        ptile_x1 = <optimised out>
        ptilepedge = {type = EDGE_NS, tile = {0xb258bc0, 0xb259c50}}
        ptilepcorner = {tile = {0xb25cf90, 0xb25e070, 0xb25f150, 0xb25e020}}
        ptile_si = <optimised out>
        _x__0 = -624
        _y__0 = <optimised out>
        _x__w = <optimised out>
        _y__h = <optimised out>
        layer = <optimised out>
        gui_x0 = -624
        gui_y0 = 1824
        full = false
        tmp = <optimised out>
        __FUNCTION__ = "update_map_canvas"
#4  0x000000000049041b in unqueue_mapview_updates (write_to_screen=true) at
mapview_common.c:2599
        min_x = 795
        max_x = 891
        min_y = 294
        max_y = 366
        W = <optimised out>
        H = <optimised out>
        UW = <optimised out>
        UH = <optimised out>
        city_width = <optimised out>
        city_height = <optimised out>
        area = {{dx = 0, dy = 0, w = 96, h = 48}, {dx = -48, dy = -24, w =
192, h = 96}, {dx = 0, dy = -24, w = 96, h = 72}, {dx = -62, dy = 48, w = 221,
h = 48}, {dx = -384, dy = -192, w = 864, h = 432}, {dx = 48, dy = 48, w = 0, h
= 0}}
        my_tile_updates = {0x0, 0x7a65910, 0xa82ce10, 0x0, 0x0, 0x0}
        i = <optimised out>
        __FUNCTION__ = "unqueue_mapview_updates"
#5  0x00000000004762c8 in blink_active_unit () at control.c:723
        punit_iter = 0x0
        punit = 0x6340910
        blink_timer = 0xa21c720
        blink_time = 0.10000000000000001
        __FUNCTION__ = "blink_active_unit"
#6  0x000000000046f53b in real_timer_callback () at client_main.c:1002
        blink_time = <optimised out>
        time_until_next_call = <optimised out>
#7  0x0000000000445859 in timer_callback (data=<optimised out>) at
gui_main.c:264
        seconds = <optimised out>
#8  0x00007f3d491a88db in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#9  0x00007f3d491a7d13 in g_main_context_dispatch () from
/lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#10 0x00007f3d491a8060 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#11 0x00007f3d491a845a in g_main_loop_run () from
/lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#12 0x00007f3d486162f7 in gtk_main () from
/usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
No symbol table info available.
#13 0x00000000004487c9 in ui_main (argc=1, argv=0x7fffd4439338) at
gui_main.c:1673
        home = <optimised out>
        sig = <optimised out>
        __FUNCTION__ = "ui_main"
#14 0x000000000046ea66 in client_main (argc=1, argv=0x7fffd4439338) at
client_main.c:590
        i = 3
        loglevel = LOG_NORMAL
        ui_options = <optimised out>
        ui_separator = <optimised out>
        option = <optimised out>
        user_tileset = <optimised out>
        fatal_assertions = -1
        aii = <optimised out>
        __FUNCTION__ = "client_main"
#15 0x00007f3d477d976d in __libc_start_main (main=0x445520 <main>, argc=3,
ubp_av=0x7fffd4439338, init=<optimised out>, fini=<optimised out>,
rtld_fini=<optimised out>, stack_end=0x7fffd4439328) at libc-start.c:226
        result = <optimised out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {0, 7987190908484710959,
4478248, 140736754586416, 0, 0, -7987244615856688593, -8024643593184087505},
mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x607710, 0x7fffd4439338}, data
= {prev = 0x0, cleanup = 0x0, canceltype = 6321936}}}
        not_first_call = <optimised out>
#16 0x0000000000445551 in _start ()
No symbol table info available.




    _______________________________________________________

File Attachments:


-------------------------------------------------------
Date: Sat Dec 28 14:17:11 2013  Name: autogame-T0690-Y02252-auto.sav.bz2 
Size: 61kB   By: jtn

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

    _______________________________________________________

Reply to this item at:

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

_______________________________________________
  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