Closed Coding-Kiwi closed 2 years ago
I can reproduce this issue. This is possibly related to #1191.
You can delete fabric*.jar and server.jar from your data directory as a quick fix until we've implemented a solution. This will re-download and run the correct version of 1.18.
Re-pull the latest image to get the fabric installer updated fix.
Meanwhile @Coding-Kiwi I'm confused about what your actual problem scenario was. You left out VERSION in the compose file, so latest resolves to 1.18.1. But then you talk about setting 1.18 but didn't provide any logs to show how that didn't work. And 1.18.0 doesn't exist. Mojang always leaves off the ".0".
Meanwhile @Coding-Kiwi I'm confused about what your actual problem scenario was. You left out VERSION in the compose file, so latest resolves to 1.18.1. But then you talk about setting 1.18 but didn't provide any logs to show how that didn't work. And 1.18.0 doesn't exist. Mojang always leaves off the ".0".
The problem is that after installing 1.18.1, setting VERSION=1.18 does not start the server on version 1.18. Instead it continues to start on 1.18.1.
I've verified this, but did not test to see if #1193 fixed it (yet)
@itzg I started the server with no version specified when minecraft 1.18.1 wasn't released yet, so it resolved to 1.18. I then restarted the docker container days later, meanwhile 1.18.1 was released and no version = latest = 1.18.1 and because 1.18.1 was causing trouble, i tried to downgrade from no version = latest to 1.18 by specifying it in compose
So going from 1.18.1 down to 1.18 it still tries to run fabric 1.18.1? Please provide the full container logs.
@itzg
So going from 1.18.1 down to 1.18 it still tries to run fabric 1.18.1?
Yes
The logs I posted above are the full container logs, from docker-compose up to crash, with VERSION set to 1.18
Do you need something different?
I've retested. #1193 did not fix the issue.
###
### Start first time
###
[0] stone@STONE instance docker run -d -it -e EULA=TRUE -e TYPE=FABRIC -e VERSION=1.18 -v /home/stone/Temporary/tmp/instance:/data itzg/minecraft-server
7a9a778b2e0a79447c6775f5ee60d41e5cdd5954057b83677e798de7aed8adab
[0] stone@STONE instance docker logs 7a9a778b2e0a
[init] Running as uid=1000 gid=1000 with /data as 'drwxrwxr-x 8 1000 1000 4096 Dec 12 21:19 /data'
[init] Resolved version given 1.18 into 1.18
[init] Resolving type given FABRIC
[init] Checking Fabric version information.
[init] Checking Fabric Loader version information.
[init] Installing Fabric 1.18 using fabric-installer-0.10.2.jar with loader version 0.12.11
Loading Fabric Installer: 0.10.2
Installing Fabric Loader 0.12.11(1.18) on the server
Downloading required files
Downloading library net.fabricmc:tiny-mappings-parser:0.3.0+build.17
Downloading library net.fabricmc:sponge-mixin:0.10.7+mixin.0.8.4
Downloading library net.fabricmc:tiny-remapper:0.6.0
Downloading library net.fabricmc:access-widener:2.0.1
Downloading library org.ow2.asm:asm:9.2
Downloading library org.ow2.asm:asm-analysis:9.2
Downloading library org.ow2.asm:asm-commons:9.2
Downloading library org.ow2.asm:asm-tree:9.2
Downloading library org.ow2.asm:asm-util:9.2
Downloading library net.fabricmc:intermediary:1.18
Downloading library net.fabricmc:fabric-loader:0.12.11
Generating server launch JAR
Downloading Minecraft server
Existing server jar valid, not downloading
Done
Done, start server by running fabric-server-launch.jar
[init] server.properties already created, skipping
[init] Checking for JSON files.
[init] Setting initial memory to 1G and max to 1G
[init] Starting the Minecraft server...
Starting net.fabricmc.loader.impl.game.minecraft.BundlerClassPathCapture
[11:11:37] [INFO] [FabricLoader/GameProvider]: Loading Minecraft 1.18 with Fabric Loader 0.12.11
[11:11:38] [main/INFO]: Loading Minecraft 1.18 with Fabric Loader 0.12.11
[...]
###
### Starting once using 1.18.1
###
[0] stone@STONE instance docker run -d -it -e EULA=TRUE -e TYPE=FABRIC -e VERSION=1.18.1 -v /home/stone/Temporary/tmp/instance:/data itzg/minecraft-server
921bbd8b855e01123237619ec9149e29f030734c000d7599b9deef099ad2c6fd
[0] stone@STONE instance docker logs 921bbd8b855e
[init] Running as uid=1000 gid=1000 with /data as 'drwxrwxr-x 8 1000 1000 4096 Dec 13 11:11 /data'
[init] Resolved version given 1.18.1 into 1.18.1
[init] Resolving type given FABRIC
[init] Checking Fabric version information.
[init] Checking Fabric Loader version information.
[init] Installing Fabric 1.18.1 using fabric-installer-0.10.2.jar with loader version 0.12.11
Loading Fabric Installer: 0.10.2
Installing Fabric Loader 0.12.11(1.18.1) on the server
Downloading required files
Downloading library net.fabricmc:tiny-mappings-parser:0.3.0+build.17
Downloading library net.fabricmc:sponge-mixin:0.10.7+mixin.0.8.4
Downloading library net.fabricmc:tiny-remapper:0.6.0
Downloading library net.fabricmc:access-widener:2.0.1
Downloading library org.ow2.asm:asm:9.2
Downloading library org.ow2.asm:asm-analysis:9.2
Downloading library org.ow2.asm:asm-commons:9.2
Downloading library org.ow2.asm:asm-tree:9.2
Downloading library org.ow2.asm:asm-util:9.2
Downloading library net.fabricmc:intermediary:1.18.1
Downloading library net.fabricmc:fabric-loader:0.12.11
Generating server launch JAR
Downloading Minecraft server
Done
Done, start server by running fabric-server-launch.jar
[init] server.properties already created, skipping
[init] Checking for JSON files.
[init] Setting initial memory to 1G and max to 1G
[init] Starting the Minecraft server...
Starting net.fabricmc.loader.impl.game.minecraft.BundlerClassPathCapture
[11:15:29] [INFO] [FabricLoader/GameProvider]: Loading Minecraft 1.18.1 with Fabric Loader 0.12.11
[11:15:30] [main/INFO]: Loading Minecraft 1.18.1 with Fabric Loader 0.12.11
[...]
###
### Go back to 1.18
###
[0] stone@STONE instance docker run -d -it -e EULA=TRUE -e TYPE=FABRIC -e VERSION=1.18 -v /home/stone/Temporary/tmp/instance:/data itzg/minecraft-server
745202e2bd30b005190f3cacf6e5c951e43ace405aae85161a195ffdf214e786
[0] stone@STONE instance docker logs 745202e2bd30
[init] Running as uid=1000 gid=1000 with /data as 'drwxrwxr-x 8 1000 1000 4096 Dec 13 11:15 /data'
[init] Resolved version given 1.18 into 1.18
[init] Resolving type given FABRIC
[init] Checking Fabric version information.
[init] server.properties already created, skipping
[init] Checking for JSON files.
[init] Setting initial memory to 1G and max to 1G
[init] Starting the Minecraft server...
Starting net.fabricmc.loader.impl.game.minecraft.BundlerClassPathCapture
[11:15:57] [INFO] [FabricLoader/GameProvider]: Loading Minecraft 1.18.1 with Fabric Loader 0.12.11
[11:15:57] [main/INFO]: Loading Minecraft 1.18.1 with Fabric Loader 0.12.11
[...]
[0] stone@STONE instance docker exec -it 745202 bash
root@745202e2bd30:/data# ps -aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
minecra+ 1 0.1 0.0 705336 3368 pts/0 Ssl+ 11:15 0:00 mc-server-runner --stop-duration 60s --named-pipe /tmp/minecraft-console-in java -Xmx1G -Xms1G -Dlog4j2.formatMsgNoLookups=true -jar fabric-server-1.18-0.10.2.jar
minecra+ 202 542 16.4 5815736 1335116 pts/0 Sl+ 11:15 2:21 java -Xmx1G -Xms1G -Dlog4j2.formatMsgNoLookups=true -jar fabric-server-1.18-0.10.2.jar
I believe the issue might be that in
we check to see if the fabric jar exists. However, because 1.18 was previously installed no setup is performed. Therefore, the fabric installer is never started and thus never replaces the actual Minecraft server.jar
While the correct fabric server wrapper (1.18) is started as can be seen in the output of ps -aux
, the version of the actual server jar has never been downgraded to 1.18 from 1.18.1. The sever therefore continues to run Minecraft version 1.18.1.
@StoneLabs thank you very much for testing!
As for solutions to the problem: The first I can think of is just telling the installer to place the downloaded minecraft jar at server-{VANILLE_VERSION}.jar
. Then, we can simply set fabric-server-launcher.properties
to contain the correct jar on every start of the server.
Example: after installing 1.18 the server jar should be named server-1.18.jar
and on each start, we should write serverJar=server-1.18.jar
to fabric-server-launcher.jar
. That would ensure the correct jar is used every time.
However looking at the installer source ServerHandler.jar L70-L75 it does not appear that there is an argument that allows us to specify the target of -downloadMinecraft
. Which is somewhat annoying. So might want to just mv server.jar server-{VANILLA_VERSION}.jar
after each launch. Idk
Would like to hear some thoughts/feedback on this.
The latest image now includes the fix from #1197 . I'll get this merged to the other image variants later today.
This issue is stale because it has been open 30 days with no activity. Please add a comment describing the reason to keep this issue open.
Describe the problem
I did not configure the
VERSION
variable, so the server started with version 1.18 then I restarted the server, meanwhile 1.18.1 was released so the server automatically uses 1.18.1, sadly some fabric mods are not yet compatible. So I changed theVERSION
to1.18
The server log correctly says
but it then continues to use the subversion
1.18.0 does not work
Container definition
Container logs