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  0x000000000053c242 in ai_type_by_name (search=0x0) at ai.c:285
        len = <optimised out>
#2  0x00000000004bf365 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  0x000000000045b6cd 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  0x00000000004581c3 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  0x000000000044f5f3 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  0x000000000044f9ae in load_rulesets (restore=0x0) at ruleset.c:5647
No locals.
#9  0x000000000043433f 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 = 0xfe51c11b02b60000, 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 times>"377,
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 00260>223 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, 
              request_id_of_currently_handled_packet = -683580352}, server =
{
              currently_processed_request_id = 0, last_request_id_seen = 0, 
              ping_timers = 0x7fffd7416440, auth_tries = -683579896, 
              auth_settime = 7, status = AS_NOT_ESTABLISHED, 
              password =
" 00 00 00 00bfA327377177 00 00240dA327377177 00 00a 00 00 00 00 00 00 00 06 00 
00 00 00 00 00 00240 01 00 00 00 00 00 00bfA327377177 00 00ħ244336(177 00 00 01 
00 00 00 00 00 00 00340 61E",
' 00' <repeats 13 times>, "@dA327377177 00 00330eA327377177 00 00r", ' 00'
<repeats 15 times>"330,
eA327377177 00 00240dA327377177 00 00r 00 00 00 00 00 00 00f 00 00 00 00 00 00 
00240 01 00 00 00 00 00 00 30cA327377177 00 00j247244336(177 00 00 00 00 00 00 
00 00 00 00340 61E",
' 00' <repeats 13 times>,
"@dA327377177 00 00xeA327377177 00 00 31 00 00 00 00 00 00 00@eA327377177 00 
00xeA327377177 00 00240dA327377177 00 00 31 00 00 00 00 00 00 00"...,

              ipaddr =
" 00 00 00 00230E223 00 00 00 00 00 00S223 00 00 00 00 00 20=223 00 00 00 00 
00250<223 00 00 00 00 00x=223 00 00 00 00 00h,223 00 00 00 00 00230R223 00 00 
00 00 00bH223 00 00 00 00 00240G223 00 00 00 00 00pH223 00 00 00 00 00 70G223 
00 00 00 00 00330H223 00 00 00 00 00320F223 00 00 00 00 00hF223 00 00 00 00 
00350L223 00 00 00 00 00PM223 00 00 00 00 00 60 70223 00 00 00 00 00330;223 00 
00 00 00 00270M223 00 00 00 00 00
N223 00 00 00 00 00200?223 00 00 00 00 00p;223 00 00 00 00 00370C223 00 00 00 
00 00270@223 00 00 00 00 00 60E223 00 00 00 00 00(6223 00 00 00 00 00
4223 00 00 00 00 00270 63223 00 00 00 00 00P3223 00 00 00 00 00300(223 00 00 00 
00 00"...,
granted_access_level = ALLOW_NONE, ignore_list = 0x933968, 
              is_closing = false, delegation = {status = 176, 
                playing = 0x933010, observer = 120}}}, 
          incoming_packet_notify = 0x932fa8 <settings+2600>, 
          outgoing_packet_notify = 0, phs = {sent = 0x1fa24e0, 
            received = 0x1fa2c30, variant = 0x1fa3380}, compression = {
            frozen_level = 0, queue = {p = 0x0, size = 0, size_alloc = 0}}, 
          statistics = {bytes_send = 0}}
        __FUNCTION__ = "manual_command"
#10 0x000000000043405f in main (argc=3, argv=0x7fffd7416808) at
civmanual.c:565
        inx = 3
        showhelp = <optimised out>
        showvers = <optimised out>
        option = <optimised out>
        retval = 0


(file #18812, file #18813)
    _______________________________________________________

Additional Item Attachment:

File name: trunk-S2_5-manual-settings.patch Size:3 KB
File name: S2_4-S2_3-manual-settings.patch Size:3 KB


    _______________________________________________________

Reply to this item at:

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

_______________________________________________
  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