I've been trying to setup a dedicated server on Linux (Ubuntu server 18.04.3) and I can't quite get it working. I have it setup on a Windows VM so I know I have the port forwarding sorted out. With windows everything works but when I run it under Linux I can see the server listed but when I try to join it hangs and times out.
I know this has been posted before but what I am wondering is this affecting every Linux server, or are there some that have it working and can we try to figure out why.
When I run it under Linux, I see that the main process ShooterGameServer and one of it's threads are each pegging a CPU at 100%
I ran strace on the main pid and it is stuck in a loop.
First it calls sched_getaffinity(), then it calls openat() for each of the processors, then fstats() on the returned fp, reads the value and closes the fp.
sched_getaffinity(0, 128, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]) = 8
openat(AT_FDCWD, "/sys/devices/system/cpu/cpu0/topology/core_id", O_RDONLY) = 25
fstat(25, {st_mode=S_IFREG|0444, st_size=4096, ...}) = 0
read(25, "0\n", 4096) = 2
close(25) = 0
openat(AT_FDCWD, "/sys/devices/system/cpu/cpu1/topology/core_id", O_RDONLY) = 25
fstat(25, {st_mode=S_IFREG|0444, st_size=4096, ...}) = 0
read(25, "1\n", 4096) = 2
close(25) = 0
openat(AT_FDCWD, "/sys/devices/system/cpu/cpu2/topology/core_id", O_RDONLY) = 25
fstat(25, {st_mode=S_IFREG|0444, st_size=4096, ...}) = 0
read(25, "2\n", 4096) = 2
close(25) = 0
....
openat(AT_FDCWD, "/sys/devices/system/cpu/cpu14/topology/core_id", O_RDONLY) = 25
fstat(25, {st_mode=S_IFREG|0444, st_size=4096, ...}) = 0
read(25, "6\n", 4096) = 2
close(25) = 0
openat(AT_FDCWD, "/sys/devices/system/cpu/cpu15/topology/core_id", O_RDONLY) = 25
fstat(25, {st_mode=S_IFREG|0444, st_size=4096, ...}) = 0
read(25, "7\n", 4096) = 2
close(25) = 0
futex(0x97054f4, FUTEX_WAKE_PRIVATE, 2147483647) = 1
futex(0x97054a0, FUTEX_WAKE_PRIVATE, 1) = 1
The child thread is just spinning on a futex.
...
futex(0xab32c080, FUTEX_WAIT_PRIVATE, 0, NULL) = 0
futex(0xab32bfe0, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0xab32c084, FUTEX_WAIT_PRIVATE, 0, NULL) = 0
futex(0xab32bfe0, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0xab32c080, FUTEX_WAIT_PRIVATE, 0, NULL) = 0
futex(0xab32bfe0, FUTEX_WAKE_PRIVATE, 1) = 0
...
and occasionally fails with
futex(0x7f5db2db5178, FUTEX_WAIT_PRIVATE, 2, NULL) = -1 EAGAIN (Resource temporarily unavailable)
futex(0x7f5db2db5178, FUTEX_WAKE_PRIVATE, 1) = 0
but goes back to the futex spinning.
Does anyone have this working under Linux currently?
Thanks!