[Freeciv-Dev] (PR#10437) Another assert failure for "punit->transported_
[Top] [All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
<URL: http://rt.freeciv.org/Ticket/Display.html?id=10437 >
I can reproduce this in the stable branch. Year is 1480.
#0 0x400b2741 in kill () from /usr/lib/debug/libc.so.6
#1 0x400b24c5 in *__GI_raise (sig=6) at
../linuxthreads/sysdeps/unix/sysv/linux/raise.c:32
#2 0x400b3a08 in *__GI_abort () at ../sysdeps/generic/abort.c:88
#3 0x400abb3f in *__GI___assert_fail (assertion=0x0, file=0x0, line=0,
function=0x81683df "aiferry_gobyboat")
at assert.c:83
#4 0x0811e98e in aiferry_gobyboat (pplayer=0x820ac84, punit=0x8f34778,
dest_tile=0x40448458) at aiferry.c:459
#5 0x081248b9 in ai_gothere (pplayer=0x820ac84, punit=0x8f34778,
dest_tile=0x40448458) at aitools.c:233
#6 0x08129d94 in ai_military_attack (pplayer=0x820ac84,
punit=0x8f34778) at aiunit.c:1796
#7 0x0812a5f6 in ai_manage_military (pplayer=0x820ac84,
punit=0x8f34778) at aiunit.c:2043
#8 0x0812ab33 in ai_manage_unit (pplayer=0x820ac84, punit=0x8f34778) at
aiunit.c:2182
#9 0x0811f520 in ai_manage_ferryboat (pplayer=0x820ac84,
punit=0x8f622e0) at aiferry.c:788
#10 0x0812aacd in ai_manage_unit (pplayer=0x820ac84, punit=0x8f622e0) at
aiunit.c:2171
#11 0x0812ac77 in ai_manage_units (pplayer=0x820ac84) at aiunit.c:2203
#12 0x08120492 in ai_do_first_activities (pplayer=0x820ac84) at aihand.c:368
#13 0x0804f1cd in ai_start_turn () at srv_main.c:465
#14 0x0804f363 in begin_phase (is_new_phase=true) at srv_main.c:538
#15 0x08050f1a in main_loop () at srv_main.c:1503
#16 0x080517e0 in srv_loop () at srv_main.c:1872
#17 0x0805112a in srv_main () at srv_main.c:1622
#18 0x0804a8fb in main (argc=3, argv=0xbffff7c4) at civserver.c:167
punit is a cannon, ferryboat is a transport. There are only 5 units on
the tile so the transport can't be full. Both units are on the same
tile; the tile has a city. Both units are owned by player 4. Neither
punit nor ferryboat has the transported_by field set.
So I don't know why handle_unit_load could be failing. However I will
try adding more sanity checking. Another possibility is changing the
same_tile() check right above to a can_unit_load() check.
jason
|
|