The insurgency dedicated server for linux currently has some problemes with its stability. If the server crashes – which happens quite often – a crash dump file is written and sent to the developers for further review. There’s a special binary named crash_handler which sends the dump file. When starte the process list looks like this:
[root@mineralwasser ~]# ps auxw | grep newworld insurge+ 16353 100 0.0 21428 4612 pts/2 Rl+ 2016 4339:54 ./crash_handler 16350 http://crash.newworldinteractive.com/api/dumps/submit/insurgency 1 22907 -1 insurge+ 31057 100 0.0 21428 4540 pts/2 Rl+ 14:59 10:39 ./crash_handler 31054 http://crash.newworldinteractive.com/api/dumps/submit/insurgency 1 22907 -1 insurge+ 32614 100 0.0 21428 4776 pts/2 Rl+ 2016 3838:20 ./crash_handler 32611 http://crash.newworldinteractive.com/api/dumps/submit/insurgency 1 22907 -1
It’s okay that such a mechanism exists if it wouldn’t have three problems. The process:
- never finishes
- blocks 100% of a CPU core
- prevents the release of the gameserver port. For me that’s the main problem. If the new server is started after a crash the port is still blocked. The gameserver then seeks for the next free port. It won’t show up in you favourite list anymore because it binds then for example on port 27016 and not on 27015.
I’ve opened a ticket at New World Interactive. They told me pretty quick that the problem is known. For now I’m already waiting a bit long for a fix. I’ve found a workaround. Place the following command snippet in the gameservers‘ UNIX user:
# Kill the insurgency crash_handler process */1 * * * * /usr/bin/pkill crash_handler
This will kill the crash_handler-process every minute. The gameserver gladly gives the crash_handler-process enough time bevore the server finally restarts. Just enough that the cronjob can kick in and force the „release“ of the port.