待辦事項 #43462

server.needs_arrange sanity checks are eating up gigabytes in the log files

啟用日期: 2021-12-22 17:14 最後更新: 2023-09-06 23:00

回報者:
負責人:
類型:
狀態:
關閉
元件:
里程碑:
(無)
優先權:
5 - 中
嚴重程度:
5 - 中
處理結果:
Invalid
檔案:

細節

1: in city_increase_size() [../../freeciv/server/cityturn.c::1126]: assertion 'pcity->server.needs_arrange == CNA_NOT' failed. 1: in city_increase_size() [../../freeciv/server/cityturn.c::1126]: ( 59, 7) in "Bergomum"6 1: in city_increase_size() [../../freeciv/server/cityturn.c::1126]: Please report this message at https://www.hostedredmine.com/projects/freeciv

1: in city_reduce_size() [../../freeciv/server/cityturn.c::967]: assertion 'pcity->server.needs_arrange == CNA_NOT' failed. 1: in city_reduce_size() [../../freeciv/server/cityturn.c::967]: ( 5, 12) in "Sirmium"6 1: in city_reduce_size() [../../freeciv/server/cityturn.c::967]: Please report this message at https://www.hostedredmine.com/projects/freeciv

city_increase_size() and city_reduce_size() in cityturn.c are lines 1126 and lines 967.

These are the two places that CONSTANTLY trigger it. Note this was after trying to patch... "Wait until city is in sane state before sending info packets" 9cf91898a7fb1a1f048539ee15791d41d56070f3 ...to hopefully fix it, but it didn't fix it.

Ticket History (3/7 Histories)

2021-12-22 17:14 Updated by: lexxie9952
  • New Ticket "server.needs_arrange sanity checks are eating up gigabytes in the log files" created
2021-12-22 17:35 Updated by: cazfi
評語

Reply To lexxie9952

These are the two places that CONSTANTLY trigger it.

Sounds like FCW specific issue as I've not seen the assert to fail once (I always run tests with '-F', so should know).

2021-12-23 04:28 Updated by: None
評語

Reply To cazfi

Reply To lexxie9952

These are the two places that CONSTANTLY trigger it.

Sounds like FCW specific issue as I've not seen the assert to fail once (I always run tests with '-F', so should know).

Interesting. I believe we've been getting this ever since we first took the code back around February 2019, before any custom modifications. And we're caught up now to some certain point beyond that and still getting it. As far as I know, most games still function and run properly, but it's a bit uncomfortable to know something might be "insane" in the failed sanity check.

2021-12-23 04:44 Updated by: cazfi
評語

Reply To (Anonymous)

Reply To cazfi

Reply To lexxie9952

These are the two places that CONSTANTLY trigger it.

Sounds like FCW specific issue as I've not seen the assert to fail once (I always run tests with '-F', so should know).

Interesting. I believe we've been getting this ever since we first took the code back around February 2019, before any custom modifications.

Well, I weren't talking about freeciv/freeciv-web server, but the most freeciv/freeciv one. Freeciv-web has always used modified server (and that's what you took)

2021-12-23 05:23 Updated by: cazfi
評語

One of these two places has a FCW modification making earlier city_refresh() call conditional, which probably explains why the city is not set to sane state by such a call. The other is not as obvious by reading the code - would require actual debugging.

2022-01-05 19:18 Updated by: lexxie9952
評語

I've tortured my brain for over a week on this one. Here is what I (think I) know so far

FCW like other live servers, has switched to WYSIWYG production sequence; as a forced necessity after discovery of how the CMA can exploit the output sequence and absolutely ludicrously ridiculous levels. (Like 300%, it breaks the game.)

We implemented a version similar to what https://www.hostedredmine.com/issues/771900 does, in order to do this. A big difference is our server makes WYSIWYG an optional game server setting so has some conditional processing in it.

The city sanity check stuff is probably written to work correctly on the legacy output sequence, and is tripping city sanity issues when using WYSIWYG output.

This means the ec_info log and other error logs get absolutely with verbose sanity checks. Enough to cause the save game to crash during the phase where it saves all the ec_info stuff.

This causes repeated segfaults and game restarts.

For now FCW has no other choice but the very disagreeable one, to disable lots of the city sanity check logs and stuff.

I really hope I can get some help and better understanding into all this CNA_NOT, CNA_NORMAL, and what's the higher meta-logic to it all, so I could maybe understand how to fix this for any server using WYSIWYG, because, WYSIWYG is the future and should surely be on the TO DO list to support it for 3.2 server.

Cheers

2023-09-06 23:00 Updated by: cazfi
  • 狀態 Update from 開啟 to 關閉
  • 負責人 Update from (無) to cazfi
  • 處理結果 Update from to Invalid
  • 元件 Update from (無) to Freeciv-web

Attachment File List

No attachments

編輯

Please login to add comment to this ticket » 登入