factoriotools / factorio-docker

Factorio headless server in a Docker container
https://hub.docker.com/r/factoriotools/factorio/
MIT License
909 stars 220 forks source link

Kernel too old error (Jelastic) #111

Closed JyeGuru closed 6 years ago

JyeGuru commented 6 years ago

I've always used various Factorio docker images on a Jelastic host (MassiveGrid) to easily create dedicated servers that are simple to use and configure for playing with friends. However, when I attempted to use this one today it gave me the below error (using latest build):

su: can't change directory to '/home/factorio'
+ set -e
+ id
uid=845(factorio) gid=845(factorio) groups=845(factorio)
+ SAVES=/factorio/saves
+ CONFIG=/factorio/config
+ mkdir -p /factorio/saves
+ mkdir -p /factorio/mods
+ mkdir -p /factorio/config
+ [ ! -f /factorio/config/rconpw ]
+ [ ! -f /factorio/config/server-settings.json ]
+ [ ! -f /factorio/config/map-gen-settings.json ]
+ [ ! -f /factorio/config/map-settings.json ]
+ find -L /factorio/saves -iname *.zip -mindepth 1 -print
+ grep -q .
+ cat /factorio/config/rconpw
+ exec /opt/factorio/bin/x64/factorio --port 34197 --start-server-load-latest --server-settings /factorio/config/server-settings.json --server-whitelist /factorio/config/server-whitelist.json --server-banlist /factorio/config/server-banlist.json --rcon-port 27015 --rcon-password iYioChooChief8E --server-id /factorio/config/server-id.json
FATAL: kernel too old

Note that restarting and redeploying the environment both result in the same error being repeated in the log. There are very few configuration options when pulling an image into a Jelastic host, so I don't know what I am able to change, if this is client error.

JyeGuru commented 6 years ago

Note: This seems to be something about the base linux image used, because it's affecting other Factorio docker containers as well.

dtandersen commented 6 years ago

I think the host OS is too old for the docker version.

dtandersen commented 6 years ago

There's a new version of https://hub.docker.com/r/frolvlad/alpine-glibc/ you could try.

JyeGuru commented 6 years ago

I have also tried using goofball222/factorio (which is FROM frolvlad/alpine-glibc:latest) and it's having the same issues. It may be something my host has changed in the last week or so, and I have a ticket with them, but I'm logging it here in the event that it's the image itself.

dtandersen commented 6 years ago

I pushed a version with alpine 3.7 to 0.16-dev tag. Give it a few mins to build.

JyeGuru commented 6 years ago

I'll deploy and test it as soon as it's built and let you know.

dtandersen commented 6 years ago

I wonder if it has something to do with Intel updates. Probably a lot of providers are updating things.

dtandersen commented 6 years ago

Says they support Alpine, but maybe this version is special since it has glibc.

https://docs.jelastic.com/docker-supported-distributions

JyeGuru commented 6 years ago

Pulled 0.15 while waiting just to make sure it wasn't anything to do with a Factorio update, but still errors out the same.

And when 0.16-dev finished, pulled it - but no change, still crashes with FATAL: Kernel too old

If you're right, and it has something to do with the patches for that Intel exploit stuff, it might end up affecting a lot more people in the near future. I'll wait and see what my host has to say about it, if they've done any patching to the environment in the last few days.

JyeGuru commented 6 years ago

An update: My host is giving me the runaround - apparently they "have to change something manually on the host for every container that needs this fix" but won't tell me what they're changing so I can't trouble shoot much more. Ticket has been escalated, and now waiting for "Level three platform support" ...

BUT I believe that it's something to do with glibc-2.26 no longer supporting older kernels, and this host (and possibly others) using an older OpenVZ architecture. ( Links: 1, 2)

I'm testing some of my own images using frolvlad/alpine-glibc:glibc-2.25 to see if I can get them to work, and will let you know.

JyeGuru commented 6 years ago

Testing success - using FROM frolvlad/alpine-glibc:glibc-2.25 instead of FROM frolvlad/alpine-glibc:alpine-3.7 works for a number of other things that have been failing with the same error - including Factorio 0.16.16 (which I tested just now with a fork of this repo).

Is it possible to add a tag for 0.16 like glibc-2.25 or similar which would fix this? Or, alternately, just revert the base image for the build altogether back to 2.25?

dtandersen commented 6 years ago

I think it isn't reasonable to stay on an old Alpine version to fix this one host.