satisfactory-server icon indicating copy to clipboard operation
satisfactory-server copied to clipboard

Seg Fault if Multihome Specified

Open not-alone opened this issue 8 months ago • 18 comments
trafficstars

Describe the Bug

SEGFAULT on server start in docker

Your Runtime Command or Docker Compose File

 cat docker-compose.yaml
services:
  satisfactory-server:
    container_name: 'satisfactory-server'
    hostname: 'satisfactory-server'
    image: 'wolveix/satisfactory-server:latest'
    ports:
      - '7777:7777/udp'
      - '7777:7777/tcp'
    volumes:
      - './config:/config'
    environment:
      - MAXPLAYERS=4
      - PGID=1000
      - PUID=1000
      - STEAMBETA=false
#      - VMOVERRIDE=true
    restart: unless-stopped
    deploy:
      resources:
        limits:
          memory: 10G
        reservations:
          memory: 8G

Debug Output

docker-compose logs -f
Attaching to satisfactory-server
satisfactory-server    | ===== Satisfactory Server 1.9.5 =====
satisfactory-server    | https://github.com/wolveix/satisfactory-server
satisfactory-server    |
satisfactory-server    | Debugging enabled (the container will exit after printing the debug info)
satisfactory-server    |
satisfactory-server    | Printing environment variables:
satisfactory-server    | declare -x AUTOSAVENUM="5"
satisfactory-server    | declare -x CURRENTGID="0"
satisfactory-server    | declare -x CURRENTUID="0"
satisfactory-server    | declare -x DEBIAN_FRONTEND="noninteractive"
satisfactory-server    | declare -x DEBUG="true"
satisfactory-server    | declare -x DISABLESEASONALEVENTS="false"
satisfactory-server    | declare -x GAMECONFIGDIR="/config/gamefiles/FactoryGame/Saved"
satisfactory-server    | declare -x GAMESAVESDIR="/home/steam/.config/Epic/FactoryGame/Saved/SaveGames"
satisfactory-server    | declare -x HOME="/home/steam"
satisfactory-server    | declare -x HOSTNAME="satisfactory-server"
satisfactory-server    | declare -x LANG="en_US.UTF-8"
satisfactory-server    | declare -x LANGUAGE="en_US:en"
satisfactory-server    | declare -x LOG="false"
satisfactory-server    | declare -x MAXOBJECTS="2162688"
satisfactory-server    | declare -x MAXPLAYERS="4"
satisfactory-server    | declare -x MAXTICKRATE="30"
satisfactory-server    | declare -x MULTIHOME="::"
satisfactory-server    | declare -x OLDPWD
satisfactory-server    | declare -x PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
satisfactory-server    | declare -x PGID="1000"
satisfactory-server    | declare -x PUID="1000"
satisfactory-server    | declare -x PWD="/config"
satisfactory-server    | declare -x SERVERGAMEPORT="7777"
satisfactory-server    | declare -x SERVERSTREAMING="true"
satisfactory-server    | declare -x SHLVL="1"
satisfactory-server    | declare -x SKIPUPDATE="false"
satisfactory-server    | declare -x STEAMAPPID="1690800"
satisfactory-server    | declare -x STEAMBETA="false"
satisfactory-server    | declare -x STEAMGID="1000"
satisfactory-server    | declare -x STEAMUID="1000"
satisfactory-server    | declare -x TIMEOUT="30"
satisfactory-server    | declare -x USER="steam"
satisfactory-server    | declare -x VERSION="1.9.5"
satisfactory-server    | declare -x VMOVERRIDE="false"
satisfactory-server    |
satisfactory-server    | System info:
satisfactory-server    | OS:  Linux satisfactory-server 5.15.0-133-generic #144-Ubuntu SMP Fri Feb 7 20:47:38 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
satisfactory-server    | CPU: AMD Ryzen 7 3700X 8-Core Processor
satisfactory-server    | RAM: 26GB/31GB
satisfactory-server    | HDD: 390GB/635GB (1% used)
satisfactory-server    |
satisfactory-server    | Current version:
satisfactory-server    | 1.9.5
satisfactory-server    | Current user:
satisfactory-server    | uid=0(root) gid=0(root) groups=0(root)
satisfactory-server    | Proposed user:
satisfactory-server    | uid=1000(?) gid=1000(?) groups=1000(?)
satisfactory-server    |
satisfactory-server    | Exiting...

System Specs (please complete the following information):

===== START ISSUE REPORT =====
OS:  Linux not-alone.biz 5.15.0-133-generic #144-Ubuntu SMP Fri Feb 7 20:47:38 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
CPU: AMD Ryzen 7 3700X 8-Core Processor
RAM: 27GB/31GB
HDD: 18GB/387GB (5% used)
===== END ISSUE REPORT =====

Logs

log_segfault.txt

Additional Context

memory is tested with memtest, server is stable at all. .config folder is empty on start

not-alone avatar Feb 25 '25 14:02 not-alone

Hey @not-alone, sorry to hear you're experiencing issues.

Could you try the following in this order, please? This looks like a game bug, but I'd like to rule out the container first:

  • Remove the :/config volume mount completely, this will rule out various potential issues
  • Try image version v1.8.10, this will verify Ubuntu 24.04 (/kernel) isn't the issue
  • Try image version v1.7.4, this will verify Ubuntu 22.04 (/kernel) isn't the issue

Thanks!

wolveix avatar Feb 25 '25 15:02 wolveix

Good day, @wolveix, thank u for really fast answer!!!

  • removing volumes chapter at all is not helps
  • image version v1.8.10 working like a charm without any problems
  • image version v1.7.4 working too without problems

not-alone avatar Feb 25 '25 19:02 not-alone

Hey @not-alone, that's very interesting! Other people have had somewhat similar issues over the years. Unfortunately they're incredibly hard to pin down. Which version of Ubuntu are you running on your host, out of curiosity? I suspect upgrading your kernel may fix the issue

wolveix avatar Feb 26 '25 12:02 wolveix

$ uname -a
Linux xxx.biz 5.15.0-133-generic #144-Ubuntu SMP Fri Feb 7 20:47:38 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 22.04.5 LTS
Release:        22.04
Codename:       jammy

$ sudo apt update
[sudo] password for xxx:
Hit:1 http://ru.archive.ubuntu.com/ubuntu jammy InRelease
Get:2 http://ru.archive.ubuntu.com/ubuntu jammy-updates InRelease [128 kB]
Get:3 http://ru.archive.ubuntu.com/ubuntu jammy-backports InRelease [127 kB]
Get:4 http://ru.archive.ubuntu.com/ubuntu jammy-security InRelease [129 kB]
Hit:5 https://download.docker.com/linux/ubuntu jammy InRelease
Get:6 http://ru.archive.ubuntu.com/ubuntu jammy-updates/main amd64 Packages [2347 kB]
Get:7 http://ru.archive.ubuntu.com/ubuntu jammy-updates/main i386 Packages [760 kB]
Get:8 http://ru.archive.ubuntu.com/ubuntu jammy-updates/main Translation-en [391 kB]
Get:9 http://ru.archive.ubuntu.com/ubuntu jammy-updates/main amd64 DEP-11 Metadata [103 kB]
Get:10 http://ru.archive.ubuntu.com/ubuntu jammy-updates/restricted amd64 Packages [2995 kB]
Hit:11 https://ppa.launchpadcontent.net/ethereum/ethereum/ubuntu jammy InRelease
Get:12 http://ru.archive.ubuntu.com/ubuntu jammy-updates/restricted Translation-en [524 kB]
Get:13 http://ru.archive.ubuntu.com/ubuntu jammy-updates/restricted amd64 DEP-11 Metadata [212 B]
Get:14 http://ru.archive.ubuntu.com/ubuntu jammy-updates/universe i386 Packages [759 kB]
Get:15 http://ru.archive.ubuntu.com/ubuntu jammy-updates/universe amd64 Packages [1192 kB]
Get:16 http://ru.archive.ubuntu.com/ubuntu jammy-updates/universe amd64 DEP-11 Metadata [359 kB]
Get:17 http://ru.archive.ubuntu.com/ubuntu jammy-updates/multiverse amd64 DEP-11 Metadata [940 B]
Get:18 http://ru.archive.ubuntu.com/ubuntu jammy-backports/main amd64 DEP-11 Metadata [7028 B]
Get:19 http://ru.archive.ubuntu.com/ubuntu jammy-backports/restricted amd64 DEP-11 Metadata [216 B]
Get:20 http://ru.archive.ubuntu.com/ubuntu jammy-backports/universe amd64 DEP-11 Metadata [17.7 kB]
Get:21 http://ru.archive.ubuntu.com/ubuntu jammy-backports/multiverse amd64 DEP-11 Metadata [212 B]
Get:22 http://ru.archive.ubuntu.com/ubuntu jammy-security/main amd64 DEP-11 Metadata [43.1 kB]
Get:23 http://ru.archive.ubuntu.com/ubuntu jammy-security/restricted amd64 DEP-11 Metadata [208 B]
Get:24 http://ru.archive.ubuntu.com/ubuntu jammy-security/universe amd64 DEP-11 Metadata [125 kB]
Get:25 http://ru.archive.ubuntu.com/ubuntu jammy-security/multiverse amd64 DEP-11 Metadata [208 B]
Fetched 10.0 MB in 1s (8718 kB/s)
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
19 packages can be upgraded. Run 'apt list --upgradable' to see them.
$sudo apt upgrade
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... Done
Get more security updates through Ubuntu Pro with 'esm-apps' enabled:
  gsasl-common libiperf0 libgsasl7 iperf3
Learn more about Ubuntu Pro at https://ubuntu.com/pro
The following packages have been kept back:
  dmeventd dmsetup dns-root-data fonts-noto-color-emoji libdevmapper-event1.02.1 libdevmapper1.02.1 liblvm2cmd2.03
  lvm2 pollinate qemu-block-extra qemu-system-common qemu-system-data qemu-system-gui qemu-system-x86 qemu-utils
The following packages will be upgraded:
  docker-buildx-plugin docker-ce docker-ce-cli docker-ce-rootless-extras
4 upgraded, 0 newly installed, 0 to remove and 15 not upgraded.
Need to get 76.2 MB of archives.
After this operation, 12.3 kB of additional disk space will be used.
Do you want to continue? [Y/n]

There is no available updates for kernel :(

not-alone avatar Feb 27 '25 11:02 not-alone

Hey @not-alone, see this: https://www.omgubuntu.co.uk/2024/01/ubuntu-2204-linux-6-5-kernel-update.

To be clear, I'm not saying it'll resolve the issue for certain. It could be your version of Docker, your kernel, or 101 other things. If you're willing to try upgrading your kernel (Ubuntu usually makes the process pretty seamless), please do

wolveix avatar Feb 27 '25 11:02 wolveix

i did kernel update to Linux xxx.biz 6.8.0-52-generic #53~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Wed Jan 15 19:18:46 UTC 2 x86_64 x86_64 x86_64 GNU/Linux. No result

segfault.txt

not-alone avatar Feb 27 '25 12:02 not-alone

@not-alone I just remembered that we reverted the Ubuntu 24.04 rebase with v1.9.1, so that's not the issue. Could you try setting -e MULTIHOME=""?

wolveix avatar Feb 27 '25 13:02 wolveix

not working too :(

  satisfactory-server:
    container_name: 'satisfactory-server'
    hostname: 'satisfactory-server'
#    image: 'wolveix/satisfactory-server:v1.8.10'
    image: 'wolveix/satisfactory-server:latest'
    ports:
      - '7777:7777/udp'
      - '7777:7777/tcp'
    volumes:
      - './config:/config'
    environment:
      - MAXPLAYERS=4
      - PGID=1000
      - PUID=1000
      - STEAMBETA=false
#      - VMOVERRIDE=true
#      - DEBUG=true
      - MULTIHOME=""
    restart: unless-stopped
    deploy:
      resources:
        limits:
          memory: 10G
        reservations:
          memory: 8G

not-alone avatar Feb 27 '25 15:02 not-alone

And just to double check, setting MULTIHOME="" removed the Setting mutlihome line towards the start of your contianer log, right?

wolveix avatar Feb 27 '25 15:02 wolveix

without - MULTIHOME=""

docker-compose up
Creating network "docker-satisfactory_default" with the default driver
Creating satisfactory-server ... done
Attaching to satisfactory-server
satisfactory-server    | ===== Satisfactory Server 1.9.5 =====
satisfactory-server    | https://github.com/wolveix/satisfactory-server
satisfactory-server    |
satisfactory-server    | Checking available memory: 17GB detected
satisfactory-server    | Clearing old Satisfactory logs (set LOG=true to disable this)
satisfactory-server    | Setting autosave number to 5
satisfactory-server    | Setting max objects to 2162688
satisfactory-server    | Setting max tick rate to 30
satisfactory-server    | Setting server streaming to 1
satisfactory-server    | Setting timeout to 30
satisfactory-server    | Setting max players to 4
satisfactory-server    | Multihome will accept IPv4 and IPv6 connections
satisfactory-server    | Setting multihome to ::
satisfactory-server    | Checking available storage: 633GB detected
satisfactory-server    |
satisfactory-server    | Downloading the latest version of the game...

with - MULTIHOME=""

docker-compose up
Creating network "docker-satisfactory_default" with the default driver
Creating satisfactory-server ... done
Attaching to satisfactory-server
satisfactory-server    | ===== Satisfactory Server 1.9.5 =====
satisfactory-server    | https://github.com/wolveix/satisfactory-server
satisfactory-server    |
satisfactory-server    | Checking available memory: 17GB detected
satisfactory-server    | Clearing old Satisfactory logs (set LOG=true to disable this)
satisfactory-server    | Setting autosave number to 5
satisfactory-server    | Setting max objects to 2162688
satisfactory-server    | Setting max tick rate to 30
satisfactory-server    | Setting server streaming to 1
satisfactory-server    | Setting timeout to 30
satisfactory-server    | Setting max players to 4
satisfactory-server    | Invalid multihome address: "" (defaulting to ::)
satisfactory-server    | Multihome will accept IPv4 and IPv6 connections
satisfactory-server    | Setting multihome to ::
satisfactory-server    | Checking available storage: 633GB detected
satisfactory-server    |
satisfactory-server    | Downloading the latest version of the game...

  • MULTIHOME="" seems not work

not-alone avatar Feb 28 '25 07:02 not-alone

As you're using a Compose file, try setting it to nothing, e.g. MULTIHOME=

wolveix avatar Feb 28 '25 16:02 wolveix

YEAHHH!!! it works with

cat docker-compose.yaml
services:
  satisfactory-server:
    container_name: 'satisfactory-server'
    hostname: 'satisfactory-server'
#    image: 'wolveix/satisfactory-server:v1.8.10'
    image: 'wolveix/satisfactory-server:latest'
    ports:
      - '7777:7777/udp'
      - '7777:7777/tcp'
    volumes:
      - './config:/config'
    environment:
      - MAXPLAYERS=4
      - PGID=1000
      - PUID=1000
      - STEAMBETA=false
#      - VMOVERRIDE=true
#      - DEBUG=true
      - MULTIHOME=
    restart: unless-stopped
    deploy:
      resources:
        limits:
          memory: 10G
        reservations:
          memory: 8G

not-alone avatar Mar 01 '25 10:03 not-alone

@wolveix should i provide any additional information to completly identify the root of the problem?

not-alone avatar Mar 02 '25 19:03 not-alone

Fascinating, so it breaks if MULTIHOME is set at all huh :D Satisfactory is always a fun one.

I'll think about how we should handle this. Thanks for testing it out! Would you mind sending the output of this? Probably irrelevant, just curious :)

docker network inspect bridge

wolveix avatar Mar 03 '25 02:03 wolveix

 docker network inspect bridge
[
    {
        "Name": "bridge",
        "Id": "d9c7b2abfd14cc4e4d54fe6e1cc0cb2f22f2e15122c5430b3d559ccb5cce4ac0",
        "Created": "2025-02-27T15:29:07.157893811+03:00",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv4": true,
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": null,
            "Config": [
                {
                    "Subnet": "172.17.0.0/16",
                    "Gateway": "172.17.0.1"
                }
            ]
        },
        "Internal": false,
        "Attachable": false,
        "Ingress": false,
        "ConfigFrom": {
            "Network": ""
        },
        "ConfigOnly": false,
        "Containers": {},
        "Options": {
            "com.docker.network.bridge.default_bridge": "true",
            "com.docker.network.bridge.enable_icc": "true",
            "com.docker.network.bridge.enable_ip_masquerade": "true",
            "com.docker.network.bridge.host_binding_ipv4": "0.0.0.0",
            "com.docker.network.bridge.name": "docker0",
            "com.docker.network.driver.mtu": "1500"
        },
        "Labels": {}
    }
]

ipv6 problem maybe? and my container uses another network because docker-compose creates new network on start

not-alone avatar Mar 09 '25 11:03 not-alone

Ah right, could you also inspect the network it created for your compose, please?

wolveix avatar Mar 10 '25 13:03 wolveix

docker network inspect docker-satisfactory_default
[
    {
        "Name": "docker-satisfactory_default",
        "Id": "b0f4547d3be125f8b8181760f9ac945588b5be73e9c2eadce1bc435d0ee8678b",
        "Created": "2025-03-09T15:11:38.5717123+03:00",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv4": true,
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": null,
            "Config": [
                {
                    "Subnet": "172.21.0.0/16",
                    "Gateway": "172.21.0.1"
                }
            ]
        },
        "Internal": false,
        "Attachable": true,
        "Ingress": false,
        "ConfigFrom": {
            "Network": ""
        },
        "ConfigOnly": false,
        "Containers": {
            "12e1e6ac328e919325f41956c1e62b41f04072dc44a2db3fcb290a503815ec17": {
                "Name": "satisfactory-server",
                "EndpointID": "812427daf472093866ebec83ca36641d99604903a2d104c031b7e7ae104effc5",
                "MacAddress": "ee:93:72:db:92:b5",
                "IPv4Address": "172.21.0.2/16",
                "IPv6Address": ""
            }
        },
        "Options": {},
        "Labels": {
            "com.docker.compose.network": "default",
            "com.docker.compose.project": "docker-satisfactory",
            "com.docker.compose.version": "1.29.2"
        }
    }
]

not-alone avatar Mar 11 '25 14:03 not-alone

Hello all.

I have the same issue in my debian running on a proxmox vm:

PRETTY_NAME="Debian GNU/Linux 12 (bookworm)"
NAME="Debian GNU/Linux"
VERSION_ID="12"
VERSION="12 (bookworm)"
VERSION_CODENAME=bookworm
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

Could the problem because the IPv6 is disabled? I have several problems in other containers with some software that when the IPv6 is disable has issue to startup.

tranko1 avatar Jun 05 '25 20:06 tranko1

@not-alone sorry for leaving this so long. Is this still an issue for you? If so, please check with the latest version!

@tranko1 same question to you, if you can spare the time :)

wolveix avatar Sep 16 '25 19:09 wolveix

Not worry, thanks a million for the help.

In my case, I enabled the IPv6 and it works again. I created a new VM and keep IPv6 enabled only for Satisfactory server. But when I disabled it, it does not want to start.

tranko1 avatar Sep 16 '25 19:09 tranko1