[Freeciv-tickets] [freeciv] #47992: server/advisors/autosettlers.c::929]: assertion 'recursion <= unit_list_size(pplayer->units)' failed.

Back to archive index
OSDN Ticket System norep****@osdn*****
Tue May 9 17:19:00 JST 2023


#47992: server/advisors/autosettlers.c::929]: assertion 'recursion <= unit_list_size(pplayer->units)' failed.

  Open Date: 2023-05-08 01:21
Last Update: 2023-05-09 11:19

URL for this Ticket:
    https://osdn.net//projects/freeciv/ticket/47992
RSS feed for this Ticket:
    https://osdn.net/ticket/ticket_rss.php?group_id=12505&tid=47992

---------------------------------------------------------------------

Last Changes/Comment on this Ticket:
2023-05-09 11:19 Updated by: cazfi

Comment:

Frame 48 is the call with recursion level 0.
#3  0x0000555555809251 in fc_assert_fail (
    file=file at entry=0x5555558572f0 "../../../src/server/advisors/autosettlers.c", 
    function=function at entry=0x5555558579d0 <__FUNCTION__.8> "auto_settler_findwork", line=line at entry=929, 
    assertion=assertion at entry=0x555555857528 "recursion <= unit_list_size(pplayer->units)", 
    message=<optimized out>) at ../../src/utility/log.c:568
#4  0x00005555555d1383 in auto_settler_findwork (pplayer=pplayer at entry=0x55555866b850, 
    punit=punit at entry=0x5555569665c0, state=state at entry=0x555556808d50, recursion=recursion at entry=15)
    at ../../../src/server/advisors/autosettlers.c:929
#5  0x00005555555d1642 in auto_settler_setup_work (pplayer=pplayer at entry=0x55555866b850, 
    punit=punit at entry=0x555556965ee0, state=state at entry=0x555556808d50, recursion=recursion at entry=14, 
    path=path at entry=0x555556575f90, best_tile=best_tile at entry=0x555556b29270, best_act=ACTIVITY_GEN_ROAD, 
    best_target=0x7fffffffc040, completion_time=3) at ../../../src/server/advisors/autosettlers.c:1044
#6  0x00005555555d12a2 in auto_settler_setup_work (completion_time=3, best_target=0x7fffffffc040, 
    best_act=<optimized out>, best_tile=0x555556b29270, path=0x555556575f90, recursion=14, 
    state=0x555556808d50, punit=0x555556965ee0, pplayer=0x55555866b850)
    at ../../../src/server/advisors/autosettlers.c:1004
#7  auto_settler_findwork (pplayer=pplayer at entry=0x55555866b850, punit=punit at entry=0x555556965ee0, 
    state=state at entry=0x555556808d50, recursion=recursion at entry=14)
    at ../../../src/server/advisors/autosettlers.c:981
#8  0x00005555555d1642 in auto_settler_setup_work (pplayer=pplayer at entry=0x55555866b850, 
    punit=punit at entry=0x555556e72720, state=state at entry=0x555556808d50, recursion=recursion at entry=13, 
    path=path at entry=0x55555656fdc0, best_tile=best_tile at entry=0x555556b2d410, best_act=ACTIVITY_MINE, 
    best_target=0x7fffffffc240, completion_time=2) at ../../../src/server/advisors/autosettlers.c:1044
#9  0x00005555555d12a2 in auto_settler_setup_work (completion_time=2, best_target=0x7fffffffc240, 
    best_act=<optimized out>, best_tile=0x555556b2d410, path=0x55555656fdc0, recursion=13, 
    state=0x555556808d50, punit=0x555556e72720, pplayer=0x55555866b850)
    at ../../../src/server/advisors/autosettlers.c:1004
#10 auto_settler_findwork (pplayer=pplayer at entry=0x55555866b850, punit=punit at entry=0x555556e72720, 
    state=state at entry=0x555556808d50, recursion=recursion at entry=13)
    at ../../../src/server/advisors/autosettlers.c:981
#11 0x00005555555d1642 in auto_settler_setup_work (pplayer=pplayer at entry=0x55555866b850, 
    punit=punit at entry=0x555556966930, state=state at entry=0x555556808d50, recursion=recursion at entry=12, 
    path=path at entry=0x55555656fda0, best_tile=best_tile at entry=0x555556b257d0, best_act=ACTIVITY_GEN_ROAD, 
    best_target=0x7fffffffc440, completion_time=19) at ../../../src/server/advisors/autosettlers.c:1044
#12 0x00005555555d12a2 in auto_settler_setup_work (completion_time=19, best_target=0x7fffffffc440, 
    best_act=<optimized out>, best_tile=0x555556b257d0, path=0x55555656fda0, recursion=12, 
    state=0x555556808d50, punit=0x555556966930, pplayer=0x55555866b850)
    at ../../../src/server/advisors/autosettlers.c:1004
#13 auto_settler_findwork (pplayer=pplayer at entry=0x55555866b850, punit=punit at entry=0x555556966930, 
--Type <RET> for more, q to quit, c to continue without paging--
    state=state at entry=0x555556808d50, recursion=recursion at entry=12)
    at ../../../src/server/advisors/autosettlers.c:981
#14 0x00005555555d1642 in auto_settler_setup_work (pplayer=pplayer at entry=0x55555866b850, 
    punit=punit at entry=0x555556966ca0, state=state at entry=0x555556808d50, recursion=recursion at entry=11, 
    path=path at entry=0x555557080350, best_tile=best_tile at entry=0x555556b28550, best_act=ACTIVITY_GEN_ROAD, 
    best_target=0x7fffffffc640, completion_time=11) at ../../../src/server/advisors/autosettlers.c:1044
#15 0x00005555555d12a2 in auto_settler_setup_work (completion_time=11, best_target=0x7fffffffc640, 
    best_act=<optimized out>, best_tile=0x555556b28550, path=0x555557080350, recursion=11, 
    state=0x555556808d50, punit=0x555556966ca0, pplayer=0x55555866b850)
    at ../../../src/server/advisors/autosettlers.c:1004
#16 auto_settler_findwork (pplayer=pplayer at entry=0x55555866b850, punit=punit at entry=0x555556966ca0, 
    state=state at entry=0x555556808d50, recursion=recursion at entry=11)
    at ../../../src/server/advisors/autosettlers.c:981
#17 0x00005555555d1642 in auto_settler_setup_work (pplayer=pplayer at entry=0x55555866b850, 
    punit=punit at entry=0x5555569665c0, state=state at entry=0x555556808d50, recursion=recursion at entry=10, 
    path=path at entry=0x555557080330, best_tile=best_tile at entry=0x555556b29270, best_act=ACTIVITY_GEN_ROAD, 
    best_target=0x7fffffffc840, completion_time=8) at ../../../src/server/advisors/autosettlers.c:1044
#18 0x00005555555d12a2 in auto_settler_setup_work (completion_time=8, best_target=0x7fffffffc840, 
    best_act=<optimized out>, best_tile=0x555556b29270, path=0x555557080330, recursion=10, 
    state=0x555556808d50, punit=0x5555569665c0, pplayer=0x55555866b850)
    at ../../../src/server/advisors/autosettlers.c:1004
#19 auto_settler_findwork (pplayer=pplayer at entry=0x55555866b850, punit=punit at entry=0x5555569665c0, 
    state=state at entry=0x555556808d50, recursion=recursion at entry=10)
    at ../../../src/server/advisors/autosettlers.c:981
#20 0x00005555555d1642 in auto_settler_setup_work (pplayer=pplayer at entry=0x55555866b850, 
    punit=punit at entry=0x555556965ee0, state=state at entry=0x555556808d50, recursion=recursion at entry=9, 
    path=path at entry=0x555556726c70, best_tile=best_tile at entry=0x555556b2d410, best_act=ACTIVITY_MINE, 
    best_target=0x7fffffffca40, completion_time=3) at ../../../src/server/advisors/autosettlers.c:1044
#21 0x00005555555d12a2 in auto_settler_setup_work (completion_time=3, best_target=0x7fffffffca40, 
    best_act=<optimized out>, best_tile=0x555556b2d410, path=0x555556726c70, recursion=9, 
    state=0x555556808d50, punit=0x555556965ee0, pplayer=0x55555866b850)
    at ../../../src/server/advisors/autosettlers.c:1004
#22 auto_settler_findwork (pplayer=pplayer at entry=0x55555866b850, punit=punit at entry=0x555556965ee0, 
    state=state at entry=0x555556808d50, recursion=recursion at entry=9)
    at ../../../src/server/advisors/autosettlers.c:981
#23 0x00005555555d1642 in auto_settler_setup_work (pplayer=pplayer at entry=0x55555866b850, 
    punit=punit at entry=0x555556966250, state=state at entry=0x555556808d50, recursion=recursion at entry=8, 
    path=path at entry=0x55555707f360, best_tile=best_tile at entry=0x555556b285c0, best_act=ACTIVITY_IRRIGATE, 
    best_target=0x7fffffffcc40, completion_time=4) at ../../../src/server/advisors/autosettlers.c:1044
#24 0x00005555555d12a2 in auto_settler_setup_work (completion_time=4, best_target=0x7fffffffcc40, 
    best_act=<optimized out>, best_tile=0x555556b285c0, path=0x55555707f360, recursion=8, 
    state=0x555556808d50, punit=0x555556966250, pplayer=0x55555866b850)
    at ../../../src/server/advisors/autosettlers.c:1004
#25 auto_settler_findwork (pplayer=pplayer at entry=0x55555866b850, punit=punit at entry=0x555556966250, 
--Type <RET> for more, q to quit, c to continue without paging--
    state=state at entry=0x555556808d50, recursion=recursion at entry=8)
    at ../../../src/server/advisors/autosettlers.c:981
#26 0x00005555555d1642 in auto_settler_setup_work (pplayer=pplayer at entry=0x55555866b850, 
    punit=punit at entry=0x555556e723b0, state=state at entry=0x555556808d50, recursion=recursion at entry=7, 
    path=path at entry=0x5555570806c0, best_tile=best_tile at entry=0x555556b2c760, best_act=ACTIVITY_GEN_ROAD, 
    best_target=0x7fffffffce40, completion_time=2) at ../../../src/server/advisors/autosettlers.c:1044
#27 0x00005555555d12a2 in auto_settler_setup_work (completion_time=2, best_target=0x7fffffffce40, 
    best_act=<optimized out>, best_tile=0x555556b2c760, path=0x5555570806c0, recursion=7, 
    state=0x555556808d50, punit=0x555556e723b0, pplayer=0x55555866b850)
    at ../../../src/server/advisors/autosettlers.c:1004
#28 auto_settler_findwork (pplayer=pplayer at entry=0x55555866b850, punit=punit at entry=0x555556e723b0, 
    state=state at entry=0x555556808d50, recursion=recursion at entry=7)
    at ../../../src/server/advisors/autosettlers.c:981
#29 0x00005555555d1642 in auto_settler_setup_work (pplayer=pplayer at entry=0x55555866b850, 
    punit=punit at entry=0x5555569676b0, state=state at entry=0x555556808d50, recursion=recursion at entry=6, 
    path=path at entry=0x555556cd4730, best_tile=best_tile at entry=0x555556b29970, best_act=ACTIVITY_IRRIGATE, 
    best_target=0x7fffffffd040, completion_time=17) at ../../../src/server/advisors/autosettlers.c:1044
#30 0x00005555555d12a2 in auto_settler_setup_work (completion_time=17, best_target=0x7fffffffd040, 
    best_act=<optimized out>, best_tile=0x555556b29970, path=0x555556cd4730, recursion=6, 
    state=0x555556808d50, punit=0x5555569676b0, pplayer=0x55555866b850)
    at ../../../src/server/advisors/autosettlers.c:1004
#31 auto_settler_findwork (pplayer=pplayer at entry=0x55555866b850, punit=punit at entry=0x5555569676b0, 
    state=state at entry=0x555556808d50, recursion=recursion at entry=6)
    at ../../../src/server/advisors/autosettlers.c:981
#32 0x00005555555d1642 in auto_settler_setup_work (pplayer=pplayer at entry=0x55555866b850, 
    punit=punit at entry=0x555556966930, state=state at entry=0x555556808d50, recursion=recursion at entry=5, 
    path=path at entry=0x555556a49220, best_tile=best_tile at entry=0x555556b28550, best_act=ACTIVITY_GEN_ROAD, 
    best_target=0x7fffffffd240, completion_time=13) at ../../../src/server/advisors/autosettlers.c:1044
#33 0x00005555555d12a2 in auto_settler_setup_work (completion_time=13, best_target=0x7fffffffd240, 
    best_act=<optimized out>, best_tile=0x555556b28550, path=0x555556a49220, recursion=5, 
    state=0x555556808d50, punit=0x555556966930, pplayer=0x55555866b850)
    at ../../../src/server/advisors/autosettlers.c:1004
#34 auto_settler_findwork (pplayer=pplayer at entry=0x55555866b850, punit=punit at entry=0x555556966930, 
    state=state at entry=0x555556808d50, recursion=recursion at entry=5)
    at ../../../src/server/advisors/autosettlers.c:981
#35 0x00005555555d1642 in auto_settler_setup_work (pplayer=pplayer at entry=0x55555866b850, 
    punit=punit at entry=0x555556966ca0, state=state at entry=0x555556808d50, recursion=recursion at entry=4, 
    path=path at entry=0x555556a49240, best_tile=best_tile at entry=0x555556b29270, best_act=ACTIVITY_GEN_ROAD, 
    best_target=0x7fffffffd440, completion_time=10) at ../../../src/server/advisors/autosettlers.c:1044
#36 0x00005555555d12a2 in auto_settler_setup_work (completion_time=10, best_target=0x7fffffffd440, 
    best_act=<optimized out>, best_tile=0x555556b29270, path=0x555556a49240, recursion=4, 
    state=0x555556808d50, punit=0x555556966ca0, pplayer=0x55555866b850)
    at ../../../src/server/advisors/autosettlers.c:1004
#37 auto_settler_findwork (pplayer=pplayer at entry=0x55555866b850, punit=punit at entry=0x555556966ca0, 
--Type <RET> for more, q to quit, c to continue without paging--
    state=state at entry=0x555556808d50, recursion=recursion at entry=4)
    at ../../../src/server/advisors/autosettlers.c:981
#38 0x00005555555d1642 in auto_settler_setup_work (pplayer=pplayer at entry=0x55555866b850, 
    punit=punit at entry=0x5555569665c0, state=state at entry=0x555556808d50, recursion=recursion at entry=3, 
    path=path at entry=0x555556a49260, best_tile=best_tile at entry=0x555556b2d410, best_act=ACTIVITY_MINE, 
    best_target=0x7fffffffd640, completion_time=8) at ../../../src/server/advisors/autosettlers.c:1044
#39 0x00005555555d12a2 in auto_settler_setup_work (completion_time=8, best_target=0x7fffffffd640, 
    best_act=<optimized out>, best_tile=0x555556b2d410, path=0x555556a49260, recursion=3, 
    state=0x555556808d50, punit=0x5555569665c0, pplayer=0x55555866b850)
    at ../../../src/server/advisors/autosettlers.c:1004
#40 auto_settler_findwork (pplayer=pplayer at entry=0x55555866b850, punit=punit at entry=0x5555569665c0, 
    state=state at entry=0x555556808d50, recursion=recursion at entry=3)
    at ../../../src/server/advisors/autosettlers.c:981
#41 0x00005555555d1642 in auto_settler_setup_work (pplayer=pplayer at entry=0x55555866b850, 
    punit=punit at entry=0x555556965ee0, state=state at entry=0x555556808d50, recursion=recursion at entry=2, 
    path=path at entry=0x555556a49280, best_tile=best_tile at entry=0x555556b285c0, best_act=ACTIVITY_IRRIGATE, 
    best_target=0x7fffffffd840, completion_time=4) at ../../../src/server/advisors/autosettlers.c:1044
#42 0x00005555555d12a2 in auto_settler_setup_work (completion_time=4, best_target=0x7fffffffd840, 
    best_act=<optimized out>, best_tile=0x555556b285c0, path=0x555556a49280, recursion=2, 
    state=0x555556808d50, punit=0x555556965ee0, pplayer=0x55555866b850)
    at ../../../src/server/advisors/autosettlers.c:1004
#43 auto_settler_findwork (pplayer=pplayer at entry=0x55555866b850, punit=punit at entry=0x555556965ee0, 
    state=state at entry=0x555556808d50, recursion=recursion at entry=2)
    at ../../../src/server/advisors/autosettlers.c:981
#44 0x00005555555d1642 in auto_settler_setup_work (pplayer=pplayer at entry=0x55555866b850, 
    punit=punit at entry=0x555556967360, state=state at entry=0x555556808d50, recursion=recursion at entry=1, 
    path=path at entry=0x555556966560, best_tile=best_tile at entry=0x555556b27210, best_act=ACTIVITY_GEN_ROAD, 
    best_target=0x7fffffffda40, completion_time=15) at ../../../src/server/advisors/autosettlers.c:1044
#45 0x00005555555d12a2 in auto_settler_setup_work (completion_time=15, best_target=0x7fffffffda40, 
    best_act=<optimized out>, best_tile=0x555556b27210, path=0x555556966560, recursion=1, 
    state=0x555556808d50, punit=0x555556967360, pplayer=0x55555866b850)
    at ../../../src/server/advisors/autosettlers.c:1004
#46 auto_settler_findwork (pplayer=pplayer at entry=0x55555866b850, punit=punit at entry=0x555556967360, 
    state=0x555556808d50, recursion=recursion at entry=1) at ../../../src/server/advisors/autosettlers.c:981
#47 0x00005555555d1642 in auto_settler_setup_work (pplayer=0x55555866b850, punit=0x5555569676b0, 
    state=<optimized out>, recursion=0, path=0x555557080220, best_tile=0x555556b28550, 
    best_act=ACTIVITY_GEN_ROAD, best_target=0x7fffffffdc80, completion_time=14)
    at ../../../src/server/advisors/autosettlers.c:1044
#48 0x00005555555d2b4e in auto_settler_setup_work (pplayer=pplayer at entry=0x55555866b850, 
    punit=punit at entry=0x5555569676b0, state=state at entry=0x555556808d50, recursion=recursion at entry=0, 
    path=<optimized out>, best_tile=<optimized out>, best_act=ACTIVITY_GEN_ROAD, best_target=0x7fffffffdc80, 
    completion_time=14) at ../../../src/server/advisors/autosettlers.c:1120
---
This is NOT an infinite recursion (two units displacing each other), but relaxing the check allows things to proceed just fine -> would fix this by 1) relaxing the check, and 2) turning assert in to a log message.

---------------------------------------------------------------------
Ticket Status:

      Reporter: alain_bkr
         Owner: (None)
          Type: Bugs
        Status: Open
      Priority: 5 - Medium
     MileStone: (None)
     Component: Server
      Severity: 5 - Medium
    Resolution: None
---------------------------------------------------------------------

Ticket details:

Freeciv version 3.1.0-beta1+ (version bêta) (origin/S3_1 a37fd14dd HEAD afdfd4fbf (+10) ) 
I found this error in serv.log (run04_clang-15/loop.230507-100844.done/Sz1-Ai002-Lm59-230507_192610.done/serv.log)

1: [T055 - 2023/05/07 19:26:26] in auto_settler_findwork() [../../../server/advisors/autosettlers.c::929]: assertion 'recursion <= unit_list_size(pplayer->units)' failed.
1: [T055 - 2023/05/07 19:26:26] in auto_settler_findwork() [../../../server/advisors/autosettlers.c::929]: Please report this message at https://osdn.net/projects/freeciv/ticket/


-- 
Ticket information of Freeciv project
Freeciv Project is hosted on OSDN

Project URL: https://osdn.net/projects/freeciv/
OSDN: https://osdn.net

URL for this Ticket:
    https://osdn.net/projects/freeciv/ticket/47992
RSS feed for this Ticket:
    https://osdn.net/ticket/ticket_rss.php?group_id=12505&tid=47992



More information about the Freeciv-tickets mailing list
Back to archive index