Follow-up Comment #3, bug #21063 (project freeciv):
Attached patch addresses the cause of the assertion failures (failure to call
init_settings()), and the drivel in Level etc in S2_3.
Unfortunately it also provokes a segfault in S2_4 and later (S2_3 seems fine).
When the ruleset is loaded, the [settings] section causes the action function
for *all* settings to be invoked, which calls aifill(), which looks to
add/remove players and falls over something in the AI type stuff. (I bet it
only works on S2_3, which predates AI types, by luck.)
Making freeciv-manual work is not likely to be a high priority for me, so
anyone should feel free to pick this up and find the least awful way to bodge
around it.
#0 __strlen_sse2 () at ../sysdeps/x86_64/multiarch/../strlen.S:32
No locals.
#1 0x0053c242 in ai_type_by_name (search=0x0) at ai.c:285
len = optimised out
#2 0x004bf365 in server_create_player (player_id=optimised out,
ai_type=0x0, prgbcolor=0x0) at plrhand.c:1509
pslot = optimised out
pplayer = 0x38a6b70
__FUNCTION__ = server_create_player
#3 0x0045b6cd in aifill (amount=optimised out) at srv_main.c:1893
leader_name =
360_@327377177 00 00 00_@327377177 00 00 01 00 00 00 00 00 00 00310_@327377177
00 00377 00 00 00 00 00 00 00224pg 00 00 00 00
filled = 1
pplayer = optimised out
limit = optimised out
__FUNCTION__ = aifill
#4 0x004581c3 in setting_action (pset=0x932ed8) at settings.c:3243
No locals.
#5 settings_ruleset (file=0x2b50670, section=0x67711c settings)
at settings.c:3282
pset_iter = 0x1f8c390
pset = 0x932ed8
_setting_list = optimised out
name = optimised out
j = 0
__FUNCTION__ = settings_ruleset
#6 0x0044f5f3 in load_ruleset_game (rsdir=0xb0988b classic)
at ruleset.c:4886
food_ini = optimised out
teams = 0
gni_tmp = 1
sec = optimised out
nval = 4
file = 0x2b50670
sval = optimised out
filename = 0x389fed0 data/classic/game.ruleset
text = optimised out
svec = optimised out
i = 4
name = 0x0
ok = true
#7 load_rulesetdir (rsdir=0xb0988b classic) at ruleset.c:5765
techfile = 0x1fbd8a0
unitfile = 0x203b6b0
buildfile = 0x1fbd360
govfile = 0x203b7b0
terrfile = 0x2091fb0
cityfile = 0x20d4a80
nationfile = 0x20d30e0
effectfile = 0x2a9a690
ok = true
__FUNCTION__ = load_rulesetdir
#8 0x0044f9ae in load_rulesets (restore=0x0) at ruleset.c:5647
No locals.
#9 0x0043433f in manual_command () at civmanual.c:145
doc = optimised out
filename =
370P223 00 00 00 00 00 00261277ѕ212230v220303-370 01 00 00 00 00K325a,
' 00' repeats 12 times
manuals = optimised out
my_conn = {id = 0, sock = 0, used = true, established = false,
packet_header = {length = 1, type = 0}, closing_reason = 0x0,
observer = 29, playing = 0xfe51c11b02b6, buffer = 0x1f8e480,
send_buffer = 0x1f984b0, last_write = 0x0,
ping_time = 1.3833838083554903e-322, self = 0x3a0,
username =
PeA327377177 00 00j247244336(177 00 00 60_A327377177 00 00340 61E, ' 00'
repeats 13 times, @bA327377177 00,
addr =
pdA327377177 00 00 71 00 00 00 00 00 00 00 20227 00337(177 00 00pdA327377177
00 00240bA327377177 00 00 71 00 00 00 00 00 00 00 70 00 00 00 00 00 00 00240 03
00 00 00 00 00 00pdA327377177 00 00j247244336(177 00 00340_A327377177 00 00340
61E,
' 00' repeats 13 times, @bA327377177 00 00260bA327377177 00 00q, ' 00'
repeats 11 times377,
177 00 00b 00 00 00 00 00 00 00240bA327377177 00 00260bA327377177 00 00340 61E
00 00 00 00 00240 03 00 00 00 00 00 00260bA327377177 00 00Ǫ244336(177 00
00330.223 00 00 00 00 00360A223 00 00 00 00 00 00F223 00 00 00 00 00@I223 00 00
00 00 00220)223 00 00 00 00 00370 66223 00 00 00 00 00@223 00 00 00 00 00(P223
00 00 00 00,
capability =
250I223 00 00 00 00 00350?223 00 00 00 00 00340=223 00 00 00 00 00230 70223 00
00 00 00 00 30?223 00 00 00 00 00220C223 00 00 00 00 00220P223 00 00 00 00
00370P223 00 00 00 00 00X5223 00 00 00 00 00310D223 00 00 00 00 00XO223 00 00
00 00 00XB223 00 00 00 00 00360 64223 00 00 00 00 00260223 00 00 00 00 00b;223
00 00 00 00 00260 61223 00 00 00 00 00 20 60223 00 00 00 00 00x0223 00 00 00 00
00250/223 00 00 00 00 00@/223 00 00 00 00 00(C223 00 00 00 00 00 20J223 00 00
00 00 00HK223 00 00 00 00 00360N223 00 00 00 00 00210A223 00 00 00 00 00
A223 00 00 00 00 00220 66223 00 00 00 00 00300 65223 00 00 00 00 00310 67223 00
00 00 00 00320,223 00 00 00 00 00360'223 00 00 00 00 00230+223 00 00 00 00
00...,
access_level = ALLOW_CTRL,
notify_of_writable_data = 0x4531e0 settings_list_cmp, {client = {
last_request_id_used = 0, last_processed_request_id_seen = 0,