Actions
Bug #1741
openServer crash due to animal kingdom ai
Start date:
11/16/2025
Due date:
% Done:
0%
Estimated time:
Description
I'm playing on 3.1.5+, with a custom scenario/ruleset (that uses to work fine), and the server always crashes when I load my savegame and press end turn (on turn 12).
The crash seems to be caused by the ai of the Animal Kingdom. When I edit the ruleset to give 0 move points to every animal unit, then I can continue the savegame without crashes.
This is the full backtrace:
#0 invasion_funct (ait=ait@entry=0x555555bed6c0 <ai_types>, punit=punit@entry=0x5555577b7ed0, dest=dest@entry=true, radius=radius@entry=0, which=1) at aiunit.c:1033
_dummy_x = <optimized out>
tile1_index = 0
tile1 = <optimized out>
tile1_start = 0x0
dummy_y = <optimized out>
tile1_dummy_x = <optimized out>
tile1dummy_y = <optimized out>
_start_dummy_x = <optimized out>
_startdummy_y = <optimized out>
tile1_max = 0
ptile = 0x0
pplayer = 0x5555580f2cf0
__FUNCTION__ = "invasion_funct"
#1 0x00005555556f71b2 in find_something_to_kill (ait=ait@entry=0x555555bed6c0 <ai_types>, pplayer=pplayer@entry=0x5555580f2cf0, punit=punit@entry=0x5555579384a0,
pdest_tile=pdest_tile@entry=0x7fffffffd3f0, ppath=ppath@entry=0x7fffffffd3f8, pferrymap=pferrymap@entry=0x0, pferryboat=0x7fffffffd400, pboattype=0x0,
pmove_time=0x0) at aiunit.c:1243
atype = <optimized out>
aunit_iter = 0x5555577b8590
aunit = 0x5555577b7ed0
attack_value = 3
parameter = {map = 0x0, start_tile = 0x0, moves_left_initially = 0, fuel_left_initially = 0, transported_by_initially = 0x100000001,
cargo_depth = 1438676192, cargo_types = {vec = "UU\000\000\240&\"XUU\000\000\006\000\000\000\001", '\000' <repetidos 14 veces>}, move_rate = 0, fuel = 0,
utype = 0x0, owner = 0x0, omniscience = false, get_MC = 0x555500000001, get_move_scope = 0x555556506660 <unit_types+160320>, ignore_none_scopes = 240,
get_TB = 0x1100000001, get_EC = 0x555555895e30 <normal_move>, get_action = 0x555555894da0 <pf_get_move_scope>,
actions = (PF_AA_UNIT_ATTACK | unknown: 0x5572df00), is_action_possible = 0x0, get_zoc = 0x0, is_pos_dangerous = 0x555555895b60 <pf_get_action>,
get_moves_left_req = 0x7fff00000001, get_costs = 0x555555895a40 <pf_action_possible>, data = 0x0}
punit_map = <optimized out>
ferry_map = <optimized out>
pos = {tile = 0x5555015d3f00, turn = 1432169072, moves_left = 21845, fuel_left = 1435065184, total_MC = 6, total_EC = 4, dir_to_next_pos = 4294967295,
dir_to_here = 1435064896}
punit_class = 0x5555564ddad0 <unit_classes+432>
punit_type = 0x555556506660 <unit_types+160320>
punit_tile = 0x5555582226a0
boattype = 0x0
ferryboat = 0x0
pcity = <optimized out>
acity_data = <optimized out>
bcost = <optimized out>
bcost_bal = <optimized out>
handicap = false
unhap = false
harbor = false
go_by_boat = <optimized out>
vulnerability = <optimized out>
benefit = <optimized out>
pdefender = <optimized out>
move_time = <optimized out>
reserves = <optimized out>
attack = <optimized out>
victim_count = <optimized out>
needferry = <optimized out>
bk = 0
want = <optimized out>
best = 0
goto_dest_tile = 0x0
can_occupy = <optimized out>
nmap = <optimized out>
__FUNCTION__ = "find_something_to_kill"
#2 0x00005555556f8a80 in dai_military_attack (ait=ait@entry=0x555555bed6c0 <ai_types>, pplayer=pplayer@entry=0x5555580f2cf0, punit=punit@entry=0x5555579384a0) at aiunit.c:1785
start_tile = <optimized out>
path = 0x0
ferryboat = 0x0
dest_tile = 0x5555582226a0
id = 306
ct = 10
pcity = 0x0
__FUNCTION__ = "dai_military_attack"
#3 0x00005555556fa44a in dai_manage_military (ait=ait@entry=0x555555bed6c0 <ai_types>, nmap=<optimized out>, pplayer=pplayer@entry=0x5555580f2cf0, punit=punit@entry=0x5555579384a0) at aiunit.c:2572
unit_data = 0x555557938600
id = 306
__FUNCTION__ = "dai_manage_military"
#4 0x00005555556fcdd1 in dai_manage_unit (ait=0x555555bed6c0 <ai_types>, pplayer=0x5555580f2cf0, punit=<optimized out>) at aiunit.c:2739
unit_data = <optimized out>
bodyguard = <optimized out>
is_ferry = false
ptype = 0x555556506660 <unit_types+160320>
nmap = <optimized out>
__FUNCTION__ = "dai_manage_unit"
#5 0x00005555556fee22 in dai_manage_units (ait=ait@entry=0x555555bed6c0 <ai_types>, pplayer=pplayer@entry=0x5555580f2cf0) at aiunit.c:2887
punit = 0x5555579384a0
punit_numbers = 0x7fffffffd6c0
punit_index = 0
punit_ul = <optimized out>
punit_size = <optimized out>
__FUNCTION__ = "dai_manage_units"
#6 0x00005555556ebb13 in dai_do_first_activities (ait=0x555555bed6c0 <ai_types>, pplayer=pplayer@entry=0x5555580f2cf0) at aihand.c:758
No locales.
#7 0x00005555556911b7 in cai_do_first_activities (pplayer=0x5555580f2cf0) at classicai.c:450
deftype = <optimized out>
#8 0x00005555555a9a05 in ai_start_phase () at srv_main.c:1078
_plr_ = 0x5555580f2cf0
MY_i = 58
pplayer = 0x5555580f2cf0
__FUNCTION__ = "ai_start_phase"
MY_i = <optimized out>
pplayer = <optimized out>
_plr_ = <optimized out>
#9 begin_phase (is_new_phase=<optimized out>) at srv_main.c:1327
__FUNCTION__ = "begin_phase"
MY_i = <optimized out>
pplayer = <optimized out>
pconn_iter = <optimized out>
pconn = <optimized out>
MY_i = <optimized out>
pplayer = <optimized out>
_plr_ = <optimized out>
ptile = <optimized out>
ptile_index = <optimized out>
owner = <optimized out>
pcity = <optimized out>
MY_i = <optimized out>
pplayer = <optimized out>
MY_i = <optimized out>
pplayer = <optimized out>
plrid = <optimized out>
MY_i = <optimized out>
pplayer = <optimized out>
MY_i = <optimized out>
pplayer = <optimized out>
MY_i = <optimized out>
pplayer = <optimized out>
MY_i = <optimized out>
pplayer = <optimized out>
MY_i = <optimized out>
pplayer = <optimized out>
MY_i = <optimized out>
pplayer = <optimized out>
_plr_ = <optimized out>
MY_i = <optimized out>
pplayer = <optimized out>
_plr_ = <optimized out>
#10 srv_running () at srv_main.c:2829
i = <optimized out>
is_new_turn = <optimized out>
skip_mapimg = false
save_counter = 1
need_send_pending_events = false
i = <optimized out>
is_new_turn = <optimized out>
skip_mapimg = <optimized out>
need_send_pending_events = <optimized out>
save_counter = <optimized out>
__FUNCTION__ = "srv_running"
pconn_iter = <optimized out>
pconn = <optimized out>
pmapdef = <optimized out>
#11 srv_main () at srv_main.c:3482
__FUNCTION__ = "srv_main"
#12 0x000055555559cfca in main (argc=1, argv=0x7fffffffda28) at civserver.c:486
inx = 1
showhelp = <optimized out>
showvers = <optimized out>
option = <optimized out>
__FUNCTION__ = "main"
Files
Actions