[SPIGOT-7447] Argument --forceUpgrade ignored Created: 03/Aug/23  Updated: 25/Dec/24  Resolved: 10/Aug/23

Status: Resolved
Project: Spigot
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Bug Priority: Minor
Reporter: Arcy Assignee: Unassigned
Resolution: Fixed Votes: 0
Labels: 1.20.1, forceUpgrade
Environment:

~$ uname -a
Linux arcy-Standard-PC-i440FX-PIIX-1996 5.15.0-78-generic #85~20.04.1-Ubuntu SMP Mon Jul 17 09:42:39 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

~$ lsb_release -a
No LSB modules are available.
Distributor ID:    Zorin
Description:    Zorin OS 16.3
Release:    16
Codename:    focal

~$ java --version
openjdk 17.0.8 2023-07-18
OpenJDK Runtime Environment (build 17.0.8+7-Ubuntu-120.04.2)
OpenJDK 64-Bit Server VM (build 17.0.8+7-Ubuntu-120.04.2, mixed mode, sharing)

 

BuildTools version : git-BuildTools-2836244-160 (#160)

Spigot version : Jenkins build 3844

Without plugins


Attachments: Text File 2023-08-06-2.txt     Text File 2023_08_07_conv.txt     Text File consoleLog_dynmapGen.txt     Text File log1_20_1.txt    
Version: CraftBukkit version 3844-Spigot-b41c46d-c335a55 (MC: 1.20.1) (Implementing API version 1.20.1-R0.1-SNAPSHOT)
Guidelines Read: Yes

 Description   

I have a 1.19.4 map and would like to force its upgrade to 1.20.1, using the "java -jar ./spigot-1.20.1.jar --forceUpgrade" command.

The problem is that if the "--forceUpgrade" argument is received by the server (line 14 of the log: "Forcing world upgrade! world"), the server doesn't perform the conversion. It simply starts up and is ready to welcome players. The console does not indicate any activity related to a conversion.



 Comments   
Comment by Arcy [ 10/Aug/23 ]

The ticket can be closed.

Comment by Arcy [ 09/Aug/23 ]

I have just attempted a conversion by allocating 13 GB of memory to my VM.
Similar error when reaching 63%.

I didn't have as much trouble (nor allocated as many resources) with previous upgrades. Has anything changed?

-------

EDIT 19h31

With 15 GB allocated :

[19:19:28] [Server thread/INFO]: 66% completed (126162 / 190611 chunks)...
[19:20:09] [Server thread/INFO]: 66% completed (126163 / 190611 chunks)...
[19:20:09] [AWT-EventQueue-0/WARN]: Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap space
[19:20:09] [IO-Worker-7/ERROR]: Caught exception in thread Thread[IO-Worker-7,5,main]
java.lang.OutOfMemoryError: Java heap space
    at java.util.HashMap$KeySet.iterator(HashMap.java:983) ~[?:?]
    at net.minecraft.nbt.NBTTagCompound.a(SourceFile:163) ~[spigot-1.20.1-R0.1-SNAPSHOT.jar:3853-Spigot-3bce793-d91e5aa]
    at net.minecraft.nbt.NBTTagCompound.a(SourceFile:487) ~[spigot-1.20.1-R0.1-SNAPSHOT.jar:3853-Spigot-3bce793-d91e5aa]
    at net.minecraft.nbt.NBTTagCompound.a(SourceFile:165) ~[spigot-1.20.1-R0.1-SNAPSHOT.jar:3853-Spigot-3bce793-d91e5aa]
    at net.minecraft.nbt.NBTTagList.a(SourceFile:129) ~[spigot-1.20.1-R0.1-SNAPSHOT.jar:3853-Spigot-3bce793-d91e5aa]
    at net.minecraft.nbt.NBTTagCompound.a(SourceFile:487) ~[spigot-1.20.1-R0.1-SNAPSHOT.jar:3853-Spigot-3bce793-d91e5aa]
    at net.minecraft.nbt.NBTTagCompound.a(SourceFile:165) ~[spigot-1.20.1-R0.1-SNAPSHOT.jar:3853-Spigot-3bce793-d91e5aa]
    at net.minecraft.nbt.NBTCompressedStreamTools.a(NBTCompressedStreamTools.java:280) ~[spigot-1.20.1-R0.1-SNAPSHOT.jar:3853-Spigot-3bce793-d91e5aa]
    at net.minecraft.nbt.NBTCompressedStreamTools.a(NBTCompressedStreamTools.java:248) ~[spigot-1.20.1-R0.1-SNAPSHOT.jar:3853-Spigot-3bce793-d91e5aa]
    at net.minecraft.world.level.chunk.storage.RegionFileCache.a(RegionFileCache.java:141) ~[spigot-1.20.1-R0.1-SNAPSHOT.jar:3853-Spigot-3bce793-d91e5aa]
    at net.minecraft.world.level.chunk.storage.IOWorker.a(SourceFile:260) ~[spigot-1.20.1-R0.1-SNAPSHOT.jar:3853-Spigot-3bce793-d91e5aa]
    at net.minecraft.world.level.chunk.storage.IOWorker.a(SourceFile:250) ~[spigot-1.20.1-R0.1-SNAPSHOT.jar:3853-Spigot-3bce793-d91e5aa]
    at net.minecraft.world.level.chunk.storage.IOWorker$$Lambda$4846/0x00007f8004b8e3e8.run(Unknown Source) ~[?:?]
    at net.minecraft.util.thread.PairedQueue$b.run(SourceFile:60) ~[spigot-1.20.1-R0.1-SNAPSHOT.jar:3853-Spigot-3bce793-d91e5aa]
    at net.minecraft.util.thread.ThreadedMailbox.h(SourceFile:91) ~[spigot-1.20.1-R0.1-SNAPSHOT.jar:3853-Spigot-3bce793-d91e5aa]
    at net.minecraft.util.thread.ThreadedMailbox.a(SourceFile:146) ~[spigot-1.20.1-R0.1-SNAPSHOT.jar:3853-Spigot-3bce793-d91e5aa]
    at net.minecraft.util.thread.ThreadedMailbox.run(SourceFile:102) ~[spigot-1.20.1-R0.1-SNAPSHOT.jar:3853-Spigot-3bce793-d91e5aa]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[?:?]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[?:?]
    at java.lang.Thread.run(Thread.java:833) ~[?:?]
[19:20:12] [Server thread/INFO]: 66% completed (126163 / 190611 chunks)...
[19:20:14] [Server thread/INFO]: 66% completed (126166 / 190611 chunks)...

-------

EDIT 20h30

With the "-Xmx8G" argument, it works.
I'll check if the chunk problem is still present and indicate if the ticket can be closed.

Comment by Arcy [ 09/Aug/23 ]

3,8 GiB.

Is there a recommended amount of memory?

 

Comment by md_5 [ 09/Aug/23 ]

How much ram have you allocated?

Doesn't indicate a bug,or at least not the same bug

Comment by Arcy [ 09/Aug/23 ]

Do you have anything new to say about this problem, or do you need further information ?

Comment by Arcy [ 07/Aug/23 ]

There was a problem with the conversion : 

[12:50:37] [Server thread/INFO]: 16% completed (31836 / 190611 chunks)...
[12:50:38] [Server thread/INFO]: 16% completed (31836 / 190611 chunks)...
[12:50:40] [Server thread/INFO]: 16% completed (31838 / 190611 chunks)...
[12:50:44] [Server thread/INFO]: 16% completed (31839 / 190611 chunks)...
[12:50:44] [pool-6-thread-1/ERROR]: Error upgrading world
java.lang.OutOfMemoryError: Java heap space
    at com.mojang.datafixers.util.Either.left(Either.java:170) ~[datafixerupper-6.0.8.jar:?]
    at com.mojang.serialization.DataResult.success(DataResult.java:46) ~[datafixerupper-6.0.8.jar:?]
    at com.mojang.serialization.codecs.ListCodec.lambda$decode$4(ListCodec.java:43) ~[datafixerupper-6.0.8.jar:?]
    at com.mojang.serialization.codecs.ListCodec$$Lambda$3306/0x00007f5f4878e530.apply(Unknown Source) ~[?:?]
    at com.mojang.serialization.DataResult.lambda$flatMap$11(DataResult.java:139) ~[datafixerupper-6.0.8.jar:?]
    at com.mojang.serialization.DataResult$$Lambda$1003/0x00007f5f48428868.apply(Unknown Source) ~[?:?]
    at com.mojang.datafixers.util.Either$Left.map(Either.java:38) ~[datafixerupper-6.0.8.jar:?]
    at com.mojang.serialization.DataResult.flatMap(DataResult.java:137) ~[datafixerupper-6.0.8.jar:?]
    at com.mojang.serialization.codecs.ListCodec.decode(ListCodec.java:39) ~[datafixerupper-6.0.8.jar:?]
    at com.mojang.serialization.Decoder.parse(Decoder.java:18) ~[datafixerupper-6.0.8.jar:?]
    at com.mojang.serialization.codecs.FieldDecoder.decode(FieldDecoder.java:29) ~[datafixerupper-6.0.8.jar:?]
    at com.mojang.serialization.MapCodec$1.decode(MapCodec.java:34) ~[datafixerupper-6.0.8.jar:?]
    at com.mojang.serialization.MapDecoder.lambda$compressedDecode$1(MapDecoder.java:52) ~[datafixerupper-6.0.8.jar:?]
    at com.mojang.serialization.MapDecoder$$Lambda$3304/0x00007f5f4878d928.apply(Unknown Source) ~[?:?]
    at com.mojang.serialization.DataResult.lambda$flatMap$11(DataResult.java:139) ~[datafixerupper-6.0.8.jar:?]
    at com.mojang.serialization.DataResult$$Lambda$1003/0x00007f5f48428868.apply(Unknown Source) ~[?:?]
    at com.mojang.datafixers.util.Either$Left.map(Either.java:38) ~[datafixerupper-6.0.8.jar:?]
    at com.mojang.serialization.DataResult.flatMap(DataResult.java:137) ~[datafixerupper-6.0.8.jar:?]
    at com.mojang.serialization.MapDecoder.compressedDecode(MapDecoder.java:52) ~[datafixerupper-6.0.8.jar:?]
    at com.mojang.serialization.MapCodec$MapCodecCodec.decode(MapCodec.java:91) ~[datafixerupper-6.0.8.jar:?]
    at com.mojang.serialization.codecs.EitherCodec.decode(EitherCodec.java:24) ~[datafixerupper-6.0.8.jar:?]
    at com.mojang.serialization.codecs.PairCodec.decode(PairCodec.java:23) ~[datafixerupper-6.0.8.jar:?]
    at com.mojang.serialization.Decoder.parse(Decoder.java:18) ~[datafixerupper-6.0.8.jar:?]
    at com.mojang.serialization.codecs.FieldDecoder.decode(FieldDecoder.java:29) ~[datafixerupper-6.0.8.jar:?]
    at com.mojang.serialization.MapCodec$1.decode(MapCodec.java:34) ~[datafixerupper-6.0.8.jar:?]
    at com.mojang.serialization.MapDecoder.lambda$compressedDecode$1(MapDecoder.java:52) ~[datafixerupper-6.0.8.jar:?]
    at com.mojang.serialization.MapDecoder$$Lambda$3304/0x00007f5f4878d928.apply(Unknown Source) ~[?:?]
    at com.mojang.serialization.DataResult.lambda$flatMap$11(DataResult.java:139) ~[datafixerupper-6.0.8.jar:?]
    at com.mojang.serialization.DataResult$$Lambda$1003/0x00007f5f48428868.apply(Unknown Source) ~[?:?]
    at com.mojang.datafixers.util.Either$Left.map(Either.java:38) ~[datafixerupper-6.0.8.jar:?]
    at com.mojang.serialization.DataResult.flatMap(DataResult.java:137) ~[datafixerupper-6.0.8.jar:?]
    at com.mojang.serialization.MapDecoder.compressedDecode(MapDecoder.java:52) ~[datafixerupper-6.0.8.jar:?]
[12:50:46] [Server thread/INFO]: -------- World Settings For [world] --------
[12:50:46] [Server thread/INFO]: Cactus Growth Modifier: 100%
[12:50:46] [Server thread/INFO]: Cane Growth Modifier: 100%
[12:50:46] [Server thread/INFO]: Melon Growth Modifier: 100%
[12:50:46] [Server thread/INFO]: Mushroom Growth Modifier: 100%

2023_08_07_conv.txt

Comment by Arcy [ 07/Aug/23 ]

I'm giving it another try.
It should be finished in an hour.

Comment by md_5 [ 07/Aug/23 ]

I've pushed a fix, can you please test?

Version 3853 (available in 5-10 minutes)

Comment by Arcy [ 07/Aug/23 ]

The forced update (with spigot) was carried out without any plug-ins.
I added them afterwards.

Normally, we have on the server: LuckPerms, WorldEdit, Essentials, EssentialsProtect, EssentialsSpawn, EssentialsChat, WorldGuard, CoreProtect, EssentialsAntiBuild and dynmap.

Comment by md_5 [ 07/Aug/23 ]

Does vanilla server force upgrade work?

Comment by Arcy [ 07/Aug/23 ]

To estimate the damage, I ran a dynmap generation. It also brings up a problem with chunks.

Extract from "consoleLog_dynmapGen.txt".

Comment by Arcy [ 07/Aug/23 ]

I've attached the conversion log "2023-08-06-2.txt" to the ticket.

 

Before doing the conversion, I deleted a few files (server.properties, bukkit.yml, spigot.yml, ...), as the conversion was done on my PC and not on the usual server.

 

Minecraft Region Fixer (after conversion) :

overworld : 3 619 corrupted, 11 876 wrong location

nether : 110 corrupted, 383 wrong location

 

Comment by md_5 [ 06/Aug/23 ]

It's possible, although I didn't see it with a slightly older world.

 

I will revert and reopen as a precaution

Comment by Arcy [ 06/Aug/23 ]

It's all good to me.
On the other hand, is it possible that converting to 1.20.1 will lead to chunk corruptions?

I ran "Minecraft Region Fixer" in 1.19.4, no problems found.
I convert to 1.20.1 and after conversion, I get chunk errors.
I run "Minecraft Region Fixer" again and I have more than 3600 corrupted chunks, 11800 chunks in the wrong location.

Comment by Arcy [ 05/Aug/23 ]

I'm doing the conversion overnight, and will have the result in the morning.

Comment by md_5 [ 05/Aug/23 ]

I've pushed a fix, please back up your server first

Comment by Arcy [ 04/Aug/23 ]

Hello,

I've been notified of the priority change (Major > Minor), indicating that the unavailable function can be bypassed.

Is there another solution to force the map update, knowing that it's not possible to build Spigot (via BuildTools) in 1.20?

Generated at Fri Apr 11 16:22:09 UTC 2025 using Jira 10.3.3#10030003-sha1:d220e3fefc8dfc6d47f522d3b9a20c1455e12b7b.