Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Autopause not working even though the interface is correct #2252

Closed
tomc128 opened this issue Jun 23, 2023 · 2 comments
Closed

Autopause not working even though the interface is correct #2252

tomc128 opened this issue Jun 23, 2023 · 2 comments
Labels

Comments

@tomc128
Copy link

tomc128 commented Jun 23, 2023

Describe the problem

I'm trying to use the autopause functionality. After setting it up to the best of my ability, it just won't work. I have set the interface to the only interface which appears in the container (eth0) but this doesn't work. It could possibly be something to do with the line sudo: you do not exist in the passwd database in the log file, but I'm unsure if this is the case, and if so how to solve it.

Container definition

services:
  survival:
    container_name: minecraft-survival
    image: itzg/minecraft-server
    expose:
      - "25565"
      - "25575"
    volumes:
      - "/mnt/data/games/minecraft/servers/survival/latest:/data"
    environment:
      EULA: 'TRUE'
      TYPE: PAPER
      MEMORY: 2G
      USE_AIKAR_FLAGS: 'TRUE'
      RCON_PASSWORD: [redacted]
      SKIP_SERVER_PROPERTIES: 'TRUE'
      OVERRIDE_SERVER_PROPERTIES: 'TRUE'
      
      # Server Properties
      MAX_PLAYERS: 5
      ENABLE_COMMAND_BLOCK: 'TRUE'
      ONLINE_MODE: 'FALSE'
      
      # Autopause
      MAX_TICK_TIME: '-1'
      JVM_DD_OPTS: 'disable.watchdog:true'
      ENABLE_AUTOPAUSE: 'TRUE'
      AUTOPAUSE_KNOCK_INTERFACE: 'eth0' # eth0 is the only interface which shows in the docker container
      AUTOPAUSE_TIMEOUT_EST: '60'
      AUTOPAUSE_TIMEOUT_INIT: '60'

    user: '1001:1001'
    restart: unless-stopped
    stdin_open: true
    tty: true

Container logs

minecraft-survival  | [init] Running as uid=1001 gid=1001 with /data as 'drwxrwxr-x 12 1001 1001 4096 Jun 23 22:38 /data'
minecraft-survival  | [init] Autopause functionality enabled
minecraft-survival  | [init] Resolving type given PAPER
minecraft-survival  | sudo: you do not exist in the passwd database
minecraft-survival  | [Autopause loop] Failed to start knockd daemon.
minecraft-survival  | [Autopause loop] Probable cause: Unable to attach to interface "eth0".
minecraft-survival  | [Autopause loop] Available interfaces within the docker container:
minecraft-survival  | [Autopause loop]   eth0
minecraft-survival  | [Autopause loop] Please set the environment variable AUTOPAUSE_KNOCK_INTERFACE to the interface that handles incoming connections.
minecraft-survival  | [Autopause loop] If unsure which interface to choose, run the ifconfig command in the container.
minecraft-survival  | [Autopause loop] Autopause failed to initialize. This log entry will be printed every 30 minutes.
minecraft-survival  | [mc-image-helper] 22:44:43.002 INFO  : Resolved paper to version 1.20.1 build 47
minecraft-survival  | [mc-image-helper] 22:44:43.130 INFO  : The file /data/paper-1.20.1-47.jar is already up to date
minecraft-survival  | [init] Skipping setup of server.properties
minecraft-survival  | [init] Warning: The server.properties for the server doesn't have the Server Watchdog (effectively) disabled.
minecraft-survival  | [init]          Autopause functionality resuming the process might trigger the Watchdog and restart the server completely.
minecraft-survival  | [init]          Set the MAX_TICK_TIME env variable (or max-tick-time property) to a high value (or disable the Watchdog with value -1 for versions 1.8.1+).
minecraft-survival  | [init] Updating ops
minecraft-survival  | [init] tomc128 already present in ops.json, skipping
minecraft-survival  | [init] Updating whitelist
minecraft-survival  | [init] tomc128 already present in whitelist.json, skipping
minecraft-survival  | [init] Using Aikar's flags
minecraft-survival  | [init] Setting initial memory to 2G and max to 2G
minecraft-survival  | [init] Starting the Minecraft server...
minecraft-survival  | Starting org.bukkit.craftbukkit.Main
minecraft-survival  | System Info: Java 17 (OpenJDK 64-Bit Server VM 17.0.7+7) Host: Linux 5.15.0-75-generic (amd64)
minecraft-survival  | Loading libraries, please wait...
minecraft-survival  | 2023-06-23 22:44:48,504 ServerMain WARN Advanced terminal features are not available in this environment
minecraft-survival  | [22:44:52 INFO]: Environment: authHost='https://authserver.mojang.com', accountsHost='https://api.mojang.com', sessionHost='https://sessionserver.mojang.com', servicesHost='https://api.minecraftservices.com', name='PROD'
minecraft-survival  | [22:44:53 INFO]: Loaded 7 recipes
minecraft-survival  | [22:44:53 INFO]: Starting minecraft server version 1.20.1
minecraft-survival  | [22:44:53 INFO]: Loading properties
minecraft-survival  | [22:44:54 INFO]: This server is running Paper version git-Paper-47 (MC: 1.20.1) (Implementing API version 1.20.1-R0.1-SNAPSHOT) (Git: aea9cdd)
minecraft-survival  | [22:44:54 INFO]: Server Ping Player Sample Count: 12
minecraft-survival  | [22:44:54 INFO]: Using 4 threads for Netty based IO
minecraft-survival  | [22:44:54 WARN]: [!] The timings profiler has been enabled but has been scheduled for removal from Paper in the future.
minecraft-survival  |     We recommend installing the spark profiler as a replacement: https://spark.lucko.me/
minecraft-survival  |     For more information please visit: https://github.com/PaperMC/Paper/issues/8948
minecraft-survival  | [22:44:54 INFO]: [ChunkTaskScheduler] Chunk system is using 1 I/O threads, 3 worker threads, and gen parallelism of 3 threads
minecraft-survival  | [22:44:54 INFO]: Default game type: SURVIVAL
minecraft-survival  | [22:44:54 INFO]: Generating keypair
minecraft-survival  | [22:44:54 INFO]: Starting Minecraft server on *:25565
minecraft-survival  | [22:44:54 INFO]: Using epoll channel type
minecraft-survival  | [22:44:54 INFO]: Paper: Using libdeflate (Linux x86_64) compression from Velocity.
minecraft-survival  | [22:44:54 INFO]: Paper: Using OpenSSL 1.1.x (Linux x86_64) cipher from Velocity.
minecraft-survival  | [22:44:54 INFO]: Server permissions file permissions.yml is empty, ignoring it
minecraft-survival  | [22:44:54 INFO]: Preparing level "world"
minecraft-survival  | [22:44:54 INFO]: Preparing start region for dimension minecraft:overworld
minecraft-survival  | [22:44:55 INFO]: Time elapsed: 163 ms
minecraft-survival  | [22:44:55 INFO]: Preparing start region for dimension minecraft:the_nether
minecraft-survival  | [22:44:55 INFO]: Time elapsed: 44 ms
minecraft-survival  | [22:44:55 INFO]: Preparing start region for dimension minecraft:the_end
minecraft-survival  | [22:44:55 INFO]: Time elapsed: 34 ms
minecraft-survival  | [22:44:55 INFO]: Running delayed init tasks
minecraft-survival  | [22:44:55 INFO]: Done (1.255s)! For help, type "help"
minecraft-survival  | [22:44:55 INFO]: Timings Reset
@itzg
Copy link
Owner

itzg commented Jun 24, 2023

I guess that code needs to fail sooner. The real error is

minecraft-survival  | sudo: you do not exist in the passwd database
minecraft-survival  | [Autopause loop] Failed to start knockd daemon.

I'm guessing that's because you're running the whole container as uid 1001, but knockd needs to start as root. The script switches soon after to a non-root user FWIW.

@tomc128
Copy link
Author

tomc128 commented Jun 24, 2023

Thanks for your reply, removing the user line fixed the problem and it works now.

@tomc128 tomc128 closed this as completed Jun 24, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants