Ticket #42480

Lost connection to server: decoding error

Open Date: 2021-06-07 04:23 Last Update: 2021-06-20 09:35

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

Details

I'm testing 3.0.0-beta2+ (compiled in kubuntu 20.04, up to date)

When I try to start a new game from the client, it sometimes (looks random) get an error from the server, and goes back to the initial menu (welcome screen).

If I try the same again it uses to end working after 2 or 3 attempts. The more players in the game (or the larger the map, I'm not sure), it seems the higher the chances to fail.

It happens with the default ruleset and default options (civ2civ3, hexemplio), and also when I chose another rulesets or tilesets (I have tried classic and civ2civ3_earth).

These are the backtraces In debug mode (I have tested gtk2 and gtk3.22):

3: Uncompressing of the packet stream failed. The connection will be closed now.
1: Lost connection to server: decoding error.
2: Backtrace:
2:     0: ./client/freeciv-gtk3.22(backtrace_print+0x3b) [0x563c48db0e0b]
2:     1: ./client/freeciv-gtk3.22(vdo_log+0xad) [0x563c48db68ed]
2:     2: ./client/freeciv-gtk3.22(do_log+0xb6) [0x563c48db69d6]
2:     3: ./client/freeciv-gtk3.22(+0x735c7) [0x563c48ba35c7]
2:     4: ./client/freeciv-gtk3.22(get_packet_from_connection_raw+0x41d) [0x563c48dde5bd]
2:     5: ./client/freeciv-gtk3.22(input_from_server+0xec) [0x563c48ba3d7c]
2:     6: ./client/freeciv-gtk3.22(+0x67fa4) [0x563c48b97fa4]
2:     7: /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0(g_main_context_dispatch+0x14e) [0x7f2cd022004e]
2:     8: /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0(+0x52400) [0x7f2cd0220400]
2:     9: /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0(g_main_loop_run+0x83) [0x7f2cd02206f3]
2:    10: /usr/lib/x86_64-linux-gnu/libgtk-3.so.0(gtk_main+0x7d) [0x7f2cd0a3937d]
2:    11: ./client/freeciv-gtk3.22(ui_main+0x18f4) [0x563c48b9a7a4]
2:    12: ./client/freeciv-gtk3.22(client_main+0x3f8) [0x563c48b9d0b8]
2:    13: /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf3) [0x7f2ccffde0b3]
2:    14: ./client/freeciv-gtk3.22(_start+0x2e) [0x563c48b976fe]
2: Loading tileset "hexemplio".
1: Lost connection to server: decoding error.
2: Backtrace:
2:     0: ./client/freeciv-gtk2(backtrace_print+0x3b) [0x55ff569a32ab]
2:     1: ./client/freeciv-gtk2(vdo_log+0xad) [0x55ff569a8d8d]
2:     2: ./client/freeciv-gtk2(do_log+0xb6) [0x55ff569a8e76]
2:     3: ./client/freeciv-gtk2(+0x71a37) [0x55ff56795a37]
2:     4: ./client/freeciv-gtk2(get_packet_from_connection_raw+0x41d) [0x55ff569d0a5d]
2:     5: ./client/freeciv-gtk2(input_from_server+0xec) [0x55ff567961ec]
2:     6: ./client/freeciv-gtk2(+0x682c4) [0x55ff5678c2c4]
2:     7: /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0(g_main_context_dispatch+0x14e) [0x7f1e1c57d04e]
2:     8: /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0(+0x52400) [0x7f1e1c57d400]
2:     9: /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0(g_main_loop_run+0x83) [0x7f1e1c57d6f3]
2:    10: /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0(gtk_main+0xc2) [0x7f1e1c923092]
2:    11: ./client/freeciv-gtk2(ui_main+0x54e) [0x55ff5678d57e]
2:    12: ./client/freeciv-gtk2(client_main+0x3f8) [0x55ff5678f528]
2:    13: /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf3) [0x7f1e1c33d0b3]
2:    14: ./client/freeciv-gtk2(_start+0x2e) [0x55ff5678a3be]

Let me know what else could I test to give more useful info.

Ticket History (3/12 Histories)

2021-06-07 04:23 Updated by: bard
  • New Ticket "Lost connection to server: decoding error" created
2021-06-07 04:29 Updated by: bard
Comment

Another trace of the same error with qt client:

1: Lost connection to server: decoding error.
2: Backtrace:
2:     0: ./client/freeciv-qt(backtrace_print+0x3b) [0x5626b35f10cb]
2:     1: ./client/freeciv-qt(vdo_log+0xad) [0x5626b35f6bad]
2:     2: ./client/freeciv-qt(do_log+0xb6) [0x5626b35f6c96]
2:     3: ./client/freeciv-qt(+0xdaf97) [0x5626b335cf97]
2:     4: ./client/freeciv-qt(get_packet_from_connection_raw+0x41d) [0x5626b361e87d]
2:     5: ./client/freeciv-qt(input_from_server+0xec) [0x5626b335d74c]
2:     6: ./client/freeciv-qt(_ZN9fc_client12server_inputEi+0x24) [0x5626b34017d4]
2:     7: /usr/lib/x86_64-linux-gnu/libQt5Core.so.5(_ZN11QMetaObject8activateEP7QObjectiiPPv+0x928) [0x7ff16f15c458]
2:     8: /usr/lib/x86_64-linux-gnu/libQt5Core.so.5(_ZN15QSocketNotifier9activatedEiNS_14QPrivateSignalE+0x55) [0x7ff16f168fe5]
2:     9: /usr/lib/x86_64-linux-gnu/libQt5Core.so.5(_ZN15QSocketNotifier5eventEP6QEvent+0xd1) [0x7ff16f169341]
2:    10: /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5(_ZN19QApplicationPrivate13notify_helperEP7QObjectP6QEvent+0x86) [0x7ff16e979a66]
2:    11: /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5(_ZN12QApplication6notifyEP7QObjectP6QEvent+0x330) [0x7ff16e9830f0]
2:    12: /usr/lib/x86_64-linux-gnu/libQt5Core.so.5(_ZN16QCoreApplication15notifyInternal2EP7QObjectP6QEvent+0x18a) [0x7ff16f13093a]
2:    13: /usr/lib/x86_64-linux-gnu/libQt5Core.so.5(+0x2df1c5) [0x7ff16f1891c5]
2:    14: /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0(g_main_context_dispatch+0x27d) [0x7ff16b3e517d]
2:    15: /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0(+0x52400) [0x7ff16b3e5400]
2:    16: /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0(g_main_context_iteration+0x33) [0x7ff16b3e54a3]
2:    17: /usr/lib/x86_64-linux-gnu/libQt5Core.so.5(_ZN20QEventDispatcherGlib13processEventsE6QFlagsIN10QEventLoop17ProcessEventsFlagEE+0x65) [0x7ff16f188565]
2:    18: /usr/lib/x86_64-linux-gnu/libQt5Core.so.5(_ZN10QEventLoop4execE6QFlagsINS_17ProcessEventsFlagEE+0x12b) [0x7ff16f12f4db]
2:    19: /usr/lib/x86_64-linux-gnu/libQt5Core.so.5(_ZN16QCoreApplication4execEv+0x96) [0x7ff16f137246]
2:    20: ./client/freeciv-qt(_ZN9fc_client7fc_mainEP12QApplication+0x1b9) [0x5626b3401a89]
2:    21: ./client/freeciv-qt(_Z11qtg_ui_mainiPPc+0x16a) [0x5626b335493a]
2:    22: ./client/freeciv-qt(client_main+0x3f8) [0x5626b3356a88]
2:    23: /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf3) [0x7ff16e2d40b3]
2:    24: ./client/freeciv-qt(_start+0x2e) [0x5626b3353a5e]
QSocketNotifier: Invalid socket 20 and type 'Read', disabling...

With more than 50 players is almost a sure crash. With 5 players it uses to work at first attempt.

2021-06-07 04:29 Updated by: bard
  • Details Updated
2021-06-07 04:42 Updated by: cazfi
Comment

Reply To bard

With more than 50 players is almost a sure crash.

I cannot reproduce. Or at least none of my 20 attempts with 50 players crashed.

What was your configure command line?

2021-06-07 05:32 Updated by: bard
Comment

Reply To cazfi

Reply To bard

With more than 50 players is almost a sure crash.

I cannot reproduce. Or at least none of my 20 attempts with 50 players crashed.

This error happens often to me since I started testing v3.0 (it has happened with 3 different revisions of beta2, the last one from yesterday: commit c8895ae1). I suspected it could be related to my installation, but I have no idea what can it be. I use the same procedure to test S2_6 and had no problems there. I compiled it from clean folder (no old files).

What was your configure command line?

./autogen.sh --enable-client=all --disable-nls --enable-debug

(disable-nls allows me to test it in english, so it is easier to report bugs)

In order to be able to compile freeciv, I needed to install python-is-python3, else python3 was not recognized as installed by configure (I'm not sure if relevant).

Once the game is created, I have been able to play several ai games during 200 or 300 turns without other problems.

(Edited, 2021-06-07 05:56 Updated by: bard)
2021-06-07 06:36 Updated by: bard
Comment

I was able to start one game with 50 players (the rest default options), and I annotated the random seeds: game random_seed=224501204 map random_seed=1872074484

When I use these 2 custom seeds to start a new game with 50 players there is no crash (5 times in a row). But I did some more tests with unexpected results:

* When I use this custom MAP seed and a random GAME seed, there are crashes as usual (I have never been able to start 5 times in a row without crashes).

My crashes do not seem related to the map seed.

* When I use this custom GAME seed and a random MAP seed there are no crashes (5 times in a row), even when I change the number of players (I tested 49 and 52).

My crashes are related to the game seed, for sure. I have verified that I can not start a game with 50 players and game seed = 1 (the rest default options)... It is a sure crash.

(Edited, 2021-06-07 06:41 Updated by: bard)
2021-06-07 06:49 Updated by: bard
Comment

I decided to continue my tests with game seed = 1...

It seems a sure crash if players are >= 5. And it loads without problems if players are 2, 3 or 4.

The 5th player seems to cause the crash with this seed = 1.

I guess there is some error in the nation file of this 5th player, but I can't know which one because it crashes to me. If this seed does not crash for you, I'd suggest to check that nation (default options, core nations group, random seed=1, 5th player).

EDIT: I used S2_6 to see that the 5th player in that case uses "Polish" nation (at least, the nations of the other 4 players are the same in 2.6 and 3.0 with those same options).

(Edited, 2021-06-07 07:14 Updated by: bard)
2021-06-07 07:40 Updated by: bard
Comment

I suspect the configure option --disable-nls might be related. Could it be that the "weird" characters of polish nation leaders (and maybe others) can't be printed in my spanish system when nls (Native Language Support) option is disabled?

EDIT: I confirm it does not crash when I compile without --disable-nls

(Edited, 2021-06-07 09:07 Updated by: bard)
2021-06-07 09:10 Updated by: bard
Comment

I think the crash was caused by the combination of:

- configure option --disable-nls

- Polish leader named "Bolesław Chrobry"

I'd appreciate some alternative suggestion to play with english texts in a spanish system.

(Edited, 2021-06-07 09:11 Updated by: bard)
2021-06-11 16:59 Updated by: alain_bkr
Comment

I sometimes have similar problem ( Lost connection to server) while trying to have english menus on a french system and i load a big game from the client, without any server launched before.

I configure with

./configure --enable-gitrev --enable-debug=yes --enable-gprof --enable-client=gtk3.22,qt

Depending on how i launch the client (with no server running) , in a terminal :

LANG=en /usr/local/bin/freeciv-gtk3.22         # this command line often crashes

LANGUAGE=en /usr/local/bin/freeciv-gtk3.22     # this command often works smoothly

I have not tried to launch a server, then a client in a different language.

2021-06-20 09:14 Updated by: bard
  • Component Update from Server to (None)
2021-06-20 09:35 Updated by: bard
Comment

>Depending on how i launch the client (with no server running) , in a terminal :

 LANGUAGE=en /usr/local/bin/freeciv-gtk3.22     # this command often works smoothly

Thank you very much. This one worked for me without crashes. Sorry the late answer, I couldn't test it until now.

I remember to use this LANGUAGE command long time ago until I discovered the configure flag --disable-nls that seemed to get the same, but it turns out it is not the same.

Attachment File List

No attachments

Edit

You are not logged in. I you are not logged in, your comment will be treated as an anonymous post. » Login