Linux world directory names are mangled [solved]

I am trying to migrate my server from windows ro linux.
I just copied the directory from windows, and updated to latest version from paper-1.16.5-592.jar to paper-1.16.5-624.jar.

image

The actual world is still in there, but the server did not pick it up, and created that monstruosity. I don’t even know how to enter that directory. I tried referencing the ‘world’ both with and without the relative pathing of ‘./’, and with full paths. This is only happening if the world directory already exists, so it works fine with a new server.

The only plugin installed is manhunt.

Here’s the startup sequence:

System Info: Java 11 (OpenJDK 64-Bit Server VM 11.0.10+9) Host: Linux 5.10.27-gentoo-x86_64 (amd64)
Loading libraries, please wait...
[04:40:56 INFO]: Environment: authHost='https://authserver.mojang.com', accountsHost='https://api.mojang.com', sessionHost='https://sessionserver.mojang.com', servicesHost='https://api.minecraftservices.com', name='PROD'
[04:40:56 INFO]: Reloading ResourceManager: Default, bukkit
[04:40:57 INFO]: Loaded 7 recipes
[04:40:58 INFO]: Starting minecraft server version 1.16.5
[04:40:58 INFO]: Loading properties
[04:40:58 INFO]: This server is running Paper version git-Paper-624 (MC: 1.16.5) (Implementing API version 1.16.5-R0.1-SNAPSHOT)
[04:40:58 INFO]: Server Ping Player Sample Count: 12
[04:40:58 INFO]: Using 4 threads for Netty based IO
[04:40:58 INFO]: Debug logging is disabled
[04:40:58 INFO]: Default game type: SURVIVAL
[04:40:58 INFO]: Generating keypair
[04:40:58 INFO]: Starting Minecraft server on *:25565
[04:40:58 INFO]: Using epoll channel type
[04:40:58 INFO]: [MinecraftManhunt] Loading MinecraftManhunt v1.3.3.6
[04:40:58 INFO]: Server permissions file permissions.yml is empty, ignoring it
"04:40:58 INFO]: Preparing level "./world
[04:40:58 INFO]: Preparing start region for dimension minecraft:overworld
[04:40:59 INFO]: Loaded 0 spawn chunks for world ./world
[04:40:59 INFO]: Preparing spawn area: 0%
[04:40:59 INFO]: Preparing spawn area: 4%
[04:40:59 INFO]: Time elapsed: 716 ms
[04:40:59 INFO]: Preparing start region for dimension minecraft:the_nether
_nether59 INFO]: Loaded 0 spawn chunks for world ./world
[04:40:59 INFO]: Preparing spawn area: 0%
[04:41:00 INFO]: Time elapsed: 472 ms
[04:41:00 INFO]: Preparing start region for dimension minecraft:the_end
_the_end0 INFO]: Loaded 0 spawn chunks for world ./world
[04:41:00 INFO]: Preparing spawn area: 0%
[04:41:00 INFO]: Time elapsed: 66 ms
[04:41:00 INFO]: [MinecraftManhunt] Enabling MinecraftManhunt v1.3.3.6
[04:41:00 INFO]: [MinecraftManhunt] Minecraft Manhunt plugin enabled!
[04:41:00 INFO]: [MinecraftManhunt] Send usage data: false
[04:41:00 INFO]: Running delayed init tasks
[04:41:00 INFO]: Done (2.309s)! For help, type "help"
[04:41:00 INFO]: Timings Reset

Any help is appreciated. I guess I could just copy the files from the original server in the new directories, but I hope there is a more elegant solution, since I have at least 10 servers I want to migrate.

Thanks!

This would be due to line endings, basically a part of how an operating system stores/reads text. These differ between windows and linux, and they seem to be in the windows form here which linux does not expect. To fix this, you can use a tool called dos2unix (packaged as dos2unix almost everywhere). Just type dos2unix <filename> to convert it. In this case you’d need to do this to server.properties, however it is possible your other files are messed up as well.

Or if you haven’t written anything to the configs, you can also safely delete them and they will be generated correctly.

You are on the right track I think. But the \r is being added by running paper.

Even after cleaning everything of line-ending junk, the world name itself, within server.properties is written by paper as “world\r”

level-name=world\r

This is what it looks like after running paper. Before running it, it was

level-name=world

So I’m clearing the \r with dos2unix or by hand, and making sure everything is squeaky clean before running paper. Trouble is I just realized paper wants --world as a mandatory argument, and it overwrites server.properties. So I’m pretty sure it’s either java11 or paper.

Running with new worlds with both jre1.8 and java11, and I get a clean structure!

image

So it seems I only get this behavior when copying the windows dirs and using their names. I’ll try to dos2unix them as well, as there may be metadata in there that is used perchance (?!)

Thanks, and still looking for ideas

\r the ‘escaped’ version of the carriage reset, --world is not a mandatory argument and just overrides server.properties, this is screaming that you’re editing the files in windows, saving with windows line endings, and thus borking the file, when you load on Linux, that carriage return is read as-is

The screenshot shows the escaped version of the folder name, so you can just use those with commands.

In this case you can’t use Tab completion due to the similar names, which also applies to wildcards.

I’ve never seen a transfer between Linux and Window$ going south like this, so there’s something seriously wrong somewhere.

That might be what it’s screaming, but it’s not what I’m doing.
I do not have any windows machine to edit that.

Right now it looks like the version of paper is the culprit.

if I run java -jar paper-1.16.5-592.jar --world world then I get the mangled directory
if I run java -jar paper-1.16.5-624.jar --world world, then all is fine

This, to me, is screaming paper is borked

But now, I can’t reproduce it at all. I just copied the world files over a new fresh instance.
Now it works with both Java versions, and both paper versions as seen above.

So trying to just run the Windows directory is the problem for me. If I start a new server, set it up and just restore the save, everything is a-ok.

which is, I guess, how I should’ve done it in the first place.

So lesson learned, future migrations from Windows should not be done by just running your local java on the Windows copy. Do it the right way by transferring the save file.

Also, wrong part of the Forum !