[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 02:31:03 JST 2023


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

  Open Date: 2023-05-08 00:21
Last Update: 2023-05-08 19:31

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-08 19:31 Updated by: alain_bkr

Comment:

memo for debug
This part of code has not changed since 2015
$ git blame  server/advisors/autosettlers.c 

2dc87be216 server/advisors/autosettlers.c (Marko Lindqvist       2017-10-24 21:25:14 +0300  909) /**********************************************************************//**
30444180c6 server/settlers.c              (Per I. Mathisen       2004-08-05 11:34:18 +0000  910)   Find some work for our settlers and/or workers.
f9d2488b21 server/settlers.c              (Thue Janus Kristensen 2001-08-14 14:31:21 +0000  911) **************************************************************************/
30444180c6 server/settlers.c              (Per I. Mathisen       2004-08-05 11:34:18 +0000  912) #define LOG_SETTLER LOG_DEBUG
7516e073db server/advisors/autosettlers.c (Marko Lindqvist       2010-08-06 06:35:35 +0000  913) void auto_settler_findwork(struct player *pplayer, 
7516e073db server/advisors/autosettlers.c (Marko Lindqvist       2010-08-06 06:35:35 +0000  914)                            struct unit *punit,
7516e073db server/advisors/autosettlers.c (Marko Lindqvist       2010-08-06 06:35:35 +0000  915)                            struct settlermap *state,
7516e073db server/advisors/autosettlers.c (Marko Lindqvist       2010-08-06 06:35:35 +0000  916)                            int recursion)
f9d2488b21 server/settlers.c              (Thue Janus Kristensen 2001-08-14 14:31:21 +0000  917) {
f18fcf4f6a server/advisors/autosettlers.c (Marko Lindqvist       2015-05-07 00:40:22 +0000  918)   struct worker_task *best_task;
adcd30119f server/settlers.c              (Jason Dorje Short     2004-08-17 05:13:59 +0000  919)   enum unit_activity best_act;
18fa1c4a1e server/settlers.c              (Mike Kaufman          2004-09-29 02:24:24 +0000  920)   struct tile *best_tile = NULL;
65f576397a server/advisors/autosettlers.c (Marko Lindqvist       2013-07-10 16:49:07 +0000  921)   struct extra_type *best_target;
85a632bfc7 server/settlers.c              (Marko Lindqvist       2009-09-08 21:24:00 +0000  922)   struct pf_path *path = NULL;
d4d6357449 server/advisors/autosettlers.c (Marko Lindqvist       2015-01-24 20:01:21 +0000  923)   struct city *taskcity;
f9d2488b21 server/settlers.c              (Thue Janus Kristensen 2001-08-14 14:31:21 +0000  924) 
b728d863b1 server/settlers.c              (Jason Dorje Short     2005-05-04 08:10:07 +0000  925)   /* time it will take worker to complete its given task */
b728d863b1 server/settlers.c              (Jason Dorje Short     2005-05-04 08:10:07 +0000  926)   int completion_time = 0;
b728d863b1 server/settlers.c              (Jason Dorje Short     2005-05-04 08:10:07 +0000  927) 
11c78aed28 server/settlers.c              (Jason Dorje Short     2005-06-16 19:54:06 +0000  928)   if (recursion > unit_list_size(pplayer->units)) {
3ee7e07584 server/settlers.c              (pepeto                2010-02-25 19:41:15 +0000  929)     fc_assert(recursion <= unit_list_size(pplayer->units));
8d6bef3f2b server/advisors/autosettlers.c (Marko Lindqvist       2011-01-21 00:16:41 +0000  930)     adv_unit_new_task(punit, AUT_NONE, NULL);
11c78aed28 server/settlers.c              (Jason Dorje Short     2005-06-16 19:54:06 +0000  931)     set_unit_activity(punit, ACTIVITY_IDLE);
11c78aed28 server/settlers.c              (Jason Dorje Short     2005-06-16 19:54:06 +0000  932)     send_unit_info(NULL, punit);
11c78aed28 server/settlers.c              (Jason Dorje Short     2005-06-16 19:54:06 +0000  933)     return; /* avoid further recursion. */
11c78aed28 server/settlers.c              (Jason Dorje Short     2005-06-16 19:54:06 +0000  934)   }
most of the file is unchanged
Only change in 2023 , elsewhere 5a099fdba2 :  AI: Correct equality tests between float adv_want values (I don't think it is related , i may be wrong)
2dc87be216 server/advisors/autosettlers.c (Marko Lindqvist       2017-10-24 21:25:14 +0300  302) /**********************************************************************//**
85a632bfc7 server/settlers.c              (Marko Lindqvist       2009-09-08 21:24:00 +0000  303)   Compares the best known tile improvement action with improving ptile
85a632bfc7 server/settlers.c              (Marko Lindqvist       2009-09-08 21:24:00 +0000  304)   with activity act.  Calculates the value of improving the tile by
85a632bfc7 server/settlers.c              (Marko Lindqvist       2009-09-08 21:24:00 +0000  305)   discounting the total value by the time it would take to do the work
3b58d31ce3 server/settlers.c              (Jason Dorje Short     2004-02-26 03:24:16 +0000  306)   and multiplying by some factor.
2dc87be216 server/advisors/autosettlers.c (Marko Lindqvist       2017-10-24 21:25:14 +0300  307) **************************************************************************/
85a632bfc7 server/settlers.c              (Marko Lindqvist       2009-09-08 21:24:00 +0000  308) static void consider_settler_action(const struct 
...

5a099fdba2 server/advisors/autosettlers.c (Marko Lindqvist       2023-04-22 14:30:17 +0300  349)                        || (ADV_WANTS_EQ(new_tile_value, *best_value)
5a099fdba2 server/advisors/autosettlers.c (Marko Lindqvist       2023-04-22 14:30:17 +0300  350)                            && old_tile_value < *best_old_tile_value))) {


---------------------------------------------------------------------
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