As few you might aware, Linux client of ETQW suffers from weird crash/freeze/screen lock/segfault issues. As the game is decade old and there hasn’t been an update for 9 years, it has a tendency to crash on modern versions of both Windows, Mac and Linux anyway. But the Linux crash that I will try to explain is a bit different.
In 2012, Linux version started to suffer from missing characters issue which is caused by a glibc update released around that time. It is also claimed that the libgcc library shipped with the game causes crashes which can be prevented by removing/renaming that library; libgcc_s.so.1.
As you_is_me recently compiled an up-to-date libc with referred arguments, the missing letter issue can be fixed but the segfault still happens in some cases.
I believe, libgcc related crashes were connected with the libc release at the time aren’t exact cause of the crashes that Linux clients suffer nowadays. Because, as I recently tried several Ubuntu version prior to 2012 (11.10, 10.04.4, 10.04, 9.04, 8.04) on an old laptop with Nvidia proprietary graphics from 2008, the segfault is still there.
Here are the symptoms that I observed and the theory that I came up with;
- The game doesn’t crash on Linux when you connect a server immediately after launching the game.
- The game doesn’t crash on Linux when you keep connecting and disconnecting for testing purposes.
- The game does crash/freeze on Linux if you wait in server menu for some time (5 minutes or more), then try to connect a server.
- The game does crash/freeze on Linux while connecting to another server after playing a long game.
Now, knowing that the game crashes/freezes even on distros from 2008 today, I believe that is a server side problem. I theorize that the closure of stats server and/or ranked mode causes the issue. It is obvious that the game attempts to do something if you wait in server menu for a long time. Considering that stats server and ranked mode were shut down around 2010, that might provide some clues. I believe, the game tries to connect stats server in order to retrieve up-to-date data; when its attempts return an error since there is no stats server anymore, it crashes/freezes/segfaults when the player connects a game server. It doesn’t happen if the player immediately connects to a server since at that point the game still retries to gather stats.
I haven’t tested that theory; if someone points an easy to use to use tool (has GUI) which allows tracking connection activities of a certain program on Linux, I may be able to prove or disprove it. Biggest problem of that theory is the fact that Windows and Mac versions do not crash from that issue. I would argue that those versions were developed/ported by Splash Damage and Aspyr, so they considered such possibilities during the development. But the Linux version was unofficially ported by former id Software employee, Timothee Besset who might be not aware of such possibility.
So, here it is. After dealing with that obnoxious “freeze during connection” issue for a year, that’s the best explanation that I came up with. What do you think and how can it be prevented?