EssentialsX

EssentialsX

2M Downloads

/spawn from another world results in server crash on Spigot 1.13.

Sandtato opened this issue ยท 23 comments

commented

Information

Full output of /ess version:
EssentialsX version: 2.15.0.17
LuckPerms version: 4.1.25
Vault version: 1.6.1
EssentialsXChat version: 2.15.0.17
EssentialsXSpawn version: 2.15.0.17

Server log (upload logs/latest.log to Gist): https://gist.github.com/Sandtato/4315503c4cd198007fc9e2a5b017a778

EssentialsX config (upload plugins/Essentials/config.yml to Gist): https://gist.github.com/Sandtato/ff74aadb49858813a6784f280d0ab6d1

Details

Describe your issue here: I'm currently testing my server configuration using the latest 1.13 dev builds released by Spigot. I have multiple worlds using the Multiverse plugin. When attempting to use /spawn from another world to go back to the main world, an example being my transfer plot world, the server crashes. This does not happen when using the /mvtp command between the worlds. I'm not sure if this is a configuration issue on my end, but this did not happen with 1.12.2.

commented

I also see the same problem when doing /spawn from within the same world. Attached crash report is when changing worlds.
crash-2018-07-22_17.47.20-server.txt

commented

No issues with /spawn although respawn crashed game, (spigot 1.13)

commented

After some further troubleshooting, the problem seems to be resolved once you delete the essentials folder and letting it regenerate when you start the server again. Make sure to take a backup before deleting it. There are still errors when the plugin starts, but it no longer seems to crash the server. Therefore I will be closing this issue, and will now await the 1.13 update for this plugin.

EDIT: The above steps do not work to fix the problem, as reported by other users. Do not attempt this! Please wait for an official fix by the development team.

commented

I deleted my Essentials data folder, regenerated it, edited it for my server, and /spawn still crashes the server. So I think you'll find it's not fixed.

commented

@Bobcat00 It seemed to fix it for me, although I am going to go ahead and reopen this so the devs are aware that some people are still having an issue.

commented

It also crashes the server here with the latest build from Spigot (version git-Spigot-0b44fa0-2100017 (MC: 1.13)). Same problem after deleting the Essentials folder and allowing it to regenerate.

commented

After a couple of days, I can now confirm the crashing issue has reappeared for me as well.

commented

the same thing is happening to me and i've regenerated the essentials folder 5 times now

commented

Happens within the same world as well.

commented

Me too.

commented

Thanks @Sandtato and @Bobcat00 for the crash reports. I'll take a look at this once we've brought up the 1.13 branch to the latest Spigot preview.

commented

Maybe my logs help too. Having the same issue #2092 on 1.13

commented

i updated the herochat and it seems to be working fine doing /spawn...now for me. I still do get the warns:

java.lang.NoSuchMethodError: com.earth2me.essentials.storage.BukkitConstructor.constructScalar(Lorg/yaml/snakeyaml/nodes/ScalarNode;)Ljava/lang/Object;
        at com.earth2me.essentials.storage.BukkitConstructor.access$600(BukkitConstructor.java:19) ~[?:?]
        at com.earth2me.essentials.storage.BukkitConstructor$ConstructBukkitMapping.construct(BukkitConstructor.java:184) ~[?:?]
        at org.yaml.snakeyaml.constructor.BaseConstructor.constructObjectNoCheck(BaseConstructor.java:204) ~[spigot-1.13.jar:git-Spigot-69774b3-8592585]
        at org.yaml.snakeyaml.constructor.BaseConstructor.constructObject(BaseConstructor.java:193) ~[spigot-1.13.jar:git-Spigot-69774b3-8592585]
        at org.yaml.snakeyaml.constructor.BaseConstructor.constructMapping2ndStep(BaseConstructor.java:453) ~[spigot-1.13.jar:git-Spigot-69774b3-8592585]
        at org.yaml.snakeyaml.constructor.SafeConstructor.constructMapping2ndStep(SafeConstructor.java:184) ~[spigot-1.13.jar:git-Spigot-69774b3-8592585]
        at org.yaml.snakeyaml.constructor.BaseConstructor.constructMapping(BaseConstructor.java:434) ~[spigot-1.13.jar:git-Spigot-69774b3-8592585]
        at org.yaml.snakeyaml.constructor.Constructor$ConstructMapping.construct(Constructor.java:136) ~[spigot-1.13.jar:git-Spigot-69774b3-8592585]
        at com.earth2me.essentials.storage.BukkitConstructor$ConstructBukkitMapping.construct(BukkitConstructor.java:214) ~[?:?]
        at org.yaml.snakeyaml.constructor.BaseConstructor.constructObjectNoCheck(BaseConstructor.java:204) ~[spigot-1.13.jar:git-Spigot-69774b3-8592585]
        at org.yaml.snakeyaml.constructor.BaseConstructor.constructObject(BaseConstructor.java:193) ~[spigot-1.13.jar:git-Spigot-69774b3-8592585]
        at org.yaml.snakeyaml.constructor.Constructor$ConstructMapping.newInstance(Constructor.java:283) ~[spigot-1.13.jar:git-Spigot-69774b3-8592585]
        at org.yaml.snakeyaml.constructor.Constructor$ConstructMapping.constructJavaBean2ndStep(Constructor.java:246) ~[spigot-1.13.jar:git-Spigot-69774b3-8592585]
        at org.yaml.snakeyaml.constructor.Constructor$ConstructMapping.construct(Constructor.java:149) ~[spigot-1.13.jar:git-Spigot-69774b3-8592585]
        at com.earth2me.essentials.storage.BukkitConstructor$ConstructBukkitMapping.construct(BukkitConstructor.java:214) ~[?:?]
        at org.yaml.snakeyaml.constructor.Constructor$ConstructYamlObject.construct(Constructor.java:309) ~[spigot-1.13.jar:git-Spigot-69774b3-8592585]
        at org.yaml.snakeyaml.constructor.BaseConstructor.constructObjectNoCheck(BaseConstructor.java:204) ~[spigot-1.13.jar:git-Spigot-69774b3-8592585]
        at org.yaml.snakeyaml.constructor.BaseConstructor.constructObject(BaseConstructor.java:193) ~[spigot-1.13.jar:git-Spigot-69774b3-8592585]
        at org.yaml.snakeyaml.constructor.BaseConstructor.constructDocument(BaseConstructor.java:159) ~[spigot-1.13.jar:git-Spigot-69774b3-8592585]
        at org.yaml.snakeyaml.constructor.BaseConstructor.getSingleData(BaseConstructor.java:146) ~[spigot-1.13.jar:git-Spigot-69774b3-8592585]
        at org.yaml.snakeyaml.Yaml.loadFromReader(Yaml.java:524) ~[spigot-1.13.jar:git-Spigot-69774b3-8592585]
        at org.yaml.snakeyaml.Yaml.load(Yaml.java:467) ~[spigot-1.13.jar:git-Spigot-69774b3-8592585]
        at com.earth2me.essentials.storage.YamlStorageReader.load(YamlStorageReader.java:41) ~[?:?]
        at com.earth2me.essentials.storage.AbstractDelayedYamlFileReader.run(AbstractDelayedYamlFileReader.java:33) ~[?:?]
        at org.bukkit.craftbukkit.v1_13_R1.scheduler.CraftTask.run(CraftTask.java:76) ~[spigot-1.13.jar:git-Spigot-69774b3-8592585]
        at org.bukkit.craftbukkit.v1_13_R1.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:52) [spigot-1.13.jar:git-Spigot-69774b3-8592585]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_161]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_161]
        at java.lang.Thread.run(Thread.java:748) [?:1.8.0_161]

Edit by @md678685: code block

commented

@BenjaminHoegh Other parts of the plugin that utilise Essentials' inbuilt config code also cause this error, and we're actively working on supporting 1.13 as soon as possible.

commented

If you wanna use EssentialsX on 1.13 server you must delete the EssentialsXSpawn.jar and use another plugin for /spawn

EssentialsX is a big plugin and will make no sens to begin edit the code before spigot become closer to a official 1.13 version as there too many bugs in the dev version and in Minecraft 1.13 itself

commented

"EssentialsX is a big plugin and will make no sens to begin edit the code before spigot become closer to a official 1.13 version as there too many bugs in the dev version and in Minecraft 1.13 itself"

That is so untrue. Spigot 1.13 has been released into dev mode for this very reason, for plugin creators to update.

commented

@md678685 I'll have a look for you when i'm home, but seems to load fine on 1.13 so far, haven't tested commands yet.

commented

I've tested it against build spigot-1.13-R0.1-SNAPSHOT-b1803 and it works flawlessly when you allow it to create a new config (had a bit of console puke before I did).
/spawn and /setspawn don't crash the server, used in both main and secondary worlds.

commented

That's true, if you don't create a new spawn.yml config, it throws a YAML error

https://pastebin.com/raw/AiS24FHZ

commented

@SethGandy @james090500 Do you get any other error before that?

commented

@SethGandy @james090500 @redneckgirl78 @FabioZumbi12 @Sandtato @Bobcat00 and anyone else: please try the latest EssentialsX test build in the table above - it should properly resolve the issue. The original test build did not resolve the underlying problem and you should not continue using it.

The fix has been pushed and is now available on the latest version from the build server.

commented

Spigot 1.13 includes SnakeYAML 1.21 which changed a return value, whereas 1.12 uses 1.19, meaning we need to use reflection to support both 1.19 and 1.21 at the same time. The below test build should work on both 1.12 and 1.13 - if anyone could test on both versions, it would be much appreciated.

Test builds

Commit Link
b8a8232 (latest) EssentialsX-2.15.0.17-issue2080-1.jar
bad0e3f67b1d00ff24ebd6d6c94d53eae5b62825 EssentialsX-2.15.0.18-issue2080.jar
commented

The new update works correctly with Spigot 1.13, including EssentialsSpawn, so far it does not throw any errors.