Jump to content

MeatShield

Pathfinder
  • Content Count

    26
  • Joined

  • Last visited

Posts posted by MeatShield


  1. 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!

×
×
  • Create New...