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
[email protected]
https://mail.gna.org/listinfo/freeciv-dev