User Tools

Site Tools


client:bugs

Bugs of the Crossfire Client

The Crossfire client has a longer version history, and I want to list bugs I found, using these older versions below the current versions 1.71.0 and 1.72.0

See also page known_client_issues .

All clients

Client freezes / hangs trying to connect

Several possibilities can make the client freeze when trying to connect to a server :

  1. Entering ( accidentally ) an incomplete IPv4 address as 127.0.0 instead 127.0.0.1 ( localhost )
  2. Entering ( accidentally ) an unknown IPv4 address as 128.0.0.1 instead 127.0.0.1
  3. Entering a web address with no crossfire specific protocol on their side like “google.com”

See also : Client freezes

GTK-v2

Server listing does not show

Reason : No internet connection.

Affected versions : 1.11.0 and 1.12.0

Explanation :
When the client starts, it tries to look up for the metaservers , that are hardcoded inside, usually at http://crossfire.real-time.com/metaserver2 .
But this look-up fails, because the connection to the world-wide-web is not possible.

Version 1.11 of the client loops forever printing Choosing server 0 when launched inside a terminal. The '0' reads in human minds as '1' . From the list of metaservers a random metaserver gets chosen. But because at that time there was just one metaserver-address written in the code, it will be always number '1' ( as '0' would be the first of the list ).

Version 1.12 of the client does not loop forever, but still tries the metaserver list, without stopping it at a point and presenting the list from the .crossfire / servers.cache file instead.

Version 1.50 of the client works again. But this version is affected by the create character bug , when playing on a server of versions 1.50 and later.

Reason : No internet connection and no servers.cache file

Affected versions : Likely all versions of the client.

Explanation :
When the client starts, it should present a list of servers consisting of entries received by the metaserver lookup and by entries from the servers.cache file. But the metaservers can not send a list, because they did not receive a request and an empty or non-existent servers.cache file has no entries.

Client freezes when connecting to a server

Reason : No internet connection.

Affected versions : 1.60.0 and 1.70.0; probably later versions.
1.50.0 works fine, but has the create character bug.

Explanation :
When the client starts, it presents a list to select a server to play on. This list is a mix of servers a gamer once connected to from the file .crossfire / servers.cache and from the list, the metaserver lookup received. While the terminal gets printed an error message, the failed lookup message does not reach the average user being printed somewhere visible to him.
But the user can still select from the cached entries an on-line server.
When the client tries to connect to the chosen on-line server, the client freezes forever, on Linux eating up one cpu-core 100% in - system: processes executing in kernel mode state; whatever “kernel mode” means - linux/Documentation/filesystems/proc.txt does not tell much about it.

Termination of the client on Linux is only possible by the KILL signal, all other signals fail to close the client and freeing the CPU :
killall -9 crossfire-client-gtk2 .

Quit the server connection

The client does not accept the 'q' key pressed in the command-line, when asked to play again.
The 'a' key to play again works.
Solution : Menu > Client > Disconnect
Affected Versions : 1.11.0 and below.

Connecting to ports other than the default 13327

The client does not connect to localhost:XXXXX entries in the so-called “Metaserver” GUI that shows up, when the client is launched.
The GTK-1 client works fine.
Solution : Use newer clients.
Affected Versions : 1.10.0 and below.

GTK-v1 with GTK+2

The gcfclient was able to be build with partly GTK-2 support.
In that case the Inventory and Look Ground panel to the left would draw the fonts in GTK-2 style from the .gtkrc-2.0 config file in the user's HOME directory.
The configuration option had been –enable-cfgtk2 as enable building the original gtkv1 client with GTK+ 2 at compiling time.

Pressing a keyboard key activates the command-line

The so-called “double press” issue as described at 1.11.0 , 1.10.0 and 1.9.1 describes the problem not really understandable.

To reproduce :
Launch such configured and compiled client in non-split window mode.
Put the mouse pointer somewhere into the middle of the GUI without pressing anything. Hit a number on the keyboard for the server you want to connect to, and the command-line gets activated with a blinking cursor. Repeating the press of the number and hitting Enter, the client should then connect without problems.
When asked for the log-in username, start to type your name; the first character you type in gets swallowed as before. Every time the user wants to enter something into the command-line, without putting the mouse pointer and left-clicking into the command-line, the fist letter gets swallowed into the no-where. Hitting a key when asked for something to enter, activates the commandline to wait for input, but the user expects due to the blinking cursor, that the letter or number he pressed would also show as first char in the command line.

While testing at the moment, it is not even possible to enter anything into the cmdline for the versions 1.11.0 and below, after the choice of the server; log-on is not possible, because the command-line seems not to accept any input at all to enter a username, when Popup Windows were unchecked in the configuration menu. The Popup Windows choice creates a separate log-in window, instead of using the info message and command-line pane.
See the fix in the Changelog : Keyboard input impossible or confusing

Another irritating feature of this “hermaphrodite” client, is, that when binding the prevkey and hitting the key to show the last command-in-history, the command and its parameters are presented highlighted in the cmdline.
And this affects apparently all –enable-cfgtk2 gcfclient / crossfire-client-gtk clients up to and including version 1.12.0 .

GTK-v1

Version 1.9.1

Client crashes after having negotiated with the server

The client crashes when it should present either the -popups separate log-in window, or the login-messages and dialog in the info message pane, when the player would login when attempting to play on newer versions of the server 1.10.0 and above.
The strace command shows

read(11, “map2 =\20Q\2H\377A\20p\v \34\377E\20p\v \34\377I\20p\v \34\377”…, 1316) = 1316
— SIGSEGV (Segmentation fault) @ 0 (0) —
rt_sigaction(SIGSEGV, {SIG_DFL}, {0xb73bb000, [], 0}, 8) = 0

Reason : Unknown.
Workaround: Use the GTK-2 version of the client.

X11

-pix -xpm -png cmdline options

The cfclient says in the -help message, that he would accept the -pix option.
But instead when launched with this parameter, it claims, that this option would be wrong and exits.
In fact, it only uses the PNG picture format.
The client compiles, but a #ifndef will cause the client to exit if no LIBPNG available at compiling time.
Solution : Don't use these -pix, -xpm and -png options.
Affected versions : At least 1.9.1 and later, probably earlier versions.

client/bugs.txt · Last modified: 2018/03/18 04:54 by karl