EssentialsX

EssentialsX

2M Downloads

WrongMethodTypeException on server shutdown

SlimeDog opened this issue Β· 16 comments

commented

Information

Spigot 1.15.2 (Jenkins 2686)
EssentialsX 2.17.2.85
EssentialsXChat 2.17.2.85
no other Essentials components
Vault 1.7.3-b20

Full output of /ess version:

>ess version
[09:45:10] [Server thread/INFO]: CONSOLE issued server command: /ess version
[09:45:10] [Server thread/INFO]: Server version: 1.15.2-R0.1-SNAPSHOT git-Spigot-2f5d615-d07a78b (MC: 1.15.2)
[09:45:10] [Server thread/INFO]: EssentialsX version: 2.17.2.85
[09:45:10] [Server thread/INFO]: LuckPerms version: 5.1.10
[09:45:10] [Server thread/INFO]: PlaceholderAPI version: 2.10.7-DEV-90
[09:45:10] [Server thread/INFO]: Vault version: 1.7.3-b${env.TRAVIS_BUILD_NUMBER}
[09:45:10] [Server thread/INFO]: Citizens version: 2.0.26-SNAPSHOT (build 1955)
[09:45:10] [Server thread/INFO]: EssentialsXChat version: 2.17.2.85

Server log:

[09:35:51] [Server thread/INFO]: [Essentials] Disabling Essentials v2.17.2.85
[09:35:51] [Server thread/INFO]: [Vault] [Economy] Essentials Economy unhooked.
[09:35:51] [Server thread/WARN]: java.lang.invoke.WrongMethodTypeException: expected (MinecraftServer)boolean but found (Object)boolean
[09:35:51] [Server thread/WARN]:        at java.base/java.lang.invoke.Invokers.newWrongMethodTypeException(Invokers.java:476)
[09:35:51] [Server thread/WARN]:        at java.base/java.lang.invoke.Invokers.checkExactType(Invokers.java:485)
[09:35:51] [Server thread/WARN]:        at com.earth2me.essentials.craftbukkit.ServerState.isStopping(ServerState.java:52)
[09:35:51] [Server thread/WARN]:        at com.earth2me.essentials.Essentials.onDisable(Essentials.java:367)
[09:35:51] [Server thread/WARN]:        at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:265)
[09:35:51] [Server thread/WARN]:        at org.bukkit.plugin.java.JavaPluginLoader.disablePlugin(JavaPluginLoader.java:376)
[09:35:51] [Server thread/WARN]:        at org.bukkit.plugin.SimplePluginManager.disablePlugin(SimplePluginManager.java:501)
[09:35:51] [Server thread/WARN]:        at org.bukkit.plugin.SimplePluginManager.disablePlugins(SimplePluginManager.java:493)
[09:35:51] [Server thread/WARN]:        at org.bukkit.craftbukkit.v1_15_R1.CraftServer.disablePlugins(CraftServer.java:398)
[09:35:51] [Server thread/WARN]:        at net.minecraft.server.v1_15_R1.MinecraftServer.stop(MinecraftServer.java:699)
[09:35:51] [Server thread/WARN]:        at net.minecraft.server.v1_15_R1.DedicatedServer.stop(DedicatedServer.java:696)
[09:35:51] [Server thread/WARN]:        at net.minecraft.server.v1_15_R1.MinecraftServer.run(MinecraftServer.java:864)
[09:35:51] [Server thread/WARN]:        at java.base/java.lang.Thread.run(Thread.java:834)
[09:35:51] [Server thread/ERROR]: There's a good chance you're reloading your server right now. If that's the case, why do you hate yourself? Expect no support from the EssentialsX team when using /reload.

EssentialsX config: irrelevant

Details

Description
On server shutdown, Essentials erroneously posits a problem with reload. We never execute reload.

Steps to reproduce

  • Shutdown server. The shutdown script terminates with:
    • plan:plan manage disable kickCount
    • essentials:kickall
    • minecraft:stop

Expected behavior
Clean shutdown.

commented

did you find a fix? i am experiencing same issue

commented

We are running Paper 1.20.6 at present. The issue does not present there.

commented

We are running Paper 1.20.6 at present. The issue does not present there.

You run it with EssentialsX support? How?

commented

Can i get my hands on that PR?

It is available under the PRs tab: Update to Minecraft 1.20.6. Note that we are not running it in production.

I do now. And it works like a charm.

commented

You run it with EssentialsX support? How?

We are running a PR that has not yet been merged. That allows us to test other plugins that rely on EssentialsX.

commented

You run it with EssentialsX support? How?

We are running a PR that has not yet been merged. That allows us to test other plugins that rely on EssentialsX.

Can i get my hands on that PR?

commented

Can i get my hands on that PR?

It is available under the PRs tab: Update to Minecraft 1.20.6. Note that we are not running it in production.

commented

This is a closed issue and has nothing to do with 1.20.6. Please don’t necro old unrelated issues.

commented

This has been fixed as of build 906. That being said, I do recommend you use Paper as your server software (Paper users wouldn't have experienced this bug). Paper a fork of Spigot which has much better performance than Spigot. Additionally, it works will all your same spigot plugins! You can download it @ papermc.io!

commented

Thanks for the fix. I appreciate (sort of) that you prefer Paper, but it in no way works with all my Spigot plugins.

commented

@SlimeDog Which plugins out of curiosity? There shouldn't be any incompatibilities?

commented

Yeah not judging you or anything, but I've never in my life heard of a Spigot plugin that doesn't work on Paper. πŸ˜†

commented

I do not intend to join a debate about which is the better MC derivative. All have their adherents and detractors. I have no dog in that fight. I just need my servers to run in a performant manner. Having said that, there are incompatibilities and inconsistencies. To be fair, they flow in all directions. Most plugins are not tested against Paper (or any other Spigot derivative). It is either assumed that they will run without error, or in some cases they are explicitly unsupported. Occasionally a developer goes to the extra effort and actually certifies on Paper.

My current test bed consists of 23 Multiverse worlds and 160+ plugins. I tested paper a year ago, and found that many production-release -- as well as bleeding-edge development-release -- plugins encountered difficulties with Paper that they did not encounter with Spigot. My comments above were based on that experience.

Granted that things might have improved in the interim (and urged by the above), I tried again with the current Paper release, running the same plugin mix with no configuration changes. Here are the results for comparison:

  • Spigot 1.15.2 (Jenkins 2686)
    • Initial start-up completed in 110 seconds.
      • All worlds were loaded.
      • All plugins were enabled.
    • No issues were encountered on start-up.
    • No issues were encountered on player connection and navigation among worlds.
    • There was no TPS degradation with a few players.
  • Paper-282 with default paper.yml*
    • Initial start-up completed in 85 seconds.
      • All worlds were loaded.
      • All plugins were enabled.
    • A few INFO and WARN issues were encountered on start-up
      • Multiple instances of MobHunting/BagOfGold: mTranslationTable has not key
      • Multiple instances of TreeFeller: Found unknown tool option: type
    • The BagOfGold issues also occurred when a player connected and navigated the worlds
    • There was significant TPS degradation after a single player connected. After 10 minutes, TPS had decreased to 10 and continued to decline.

So with my plugin mix, and given that Spigot performs very well in my environment, Paper is not a viable option. I hope you will find this information useful.

And finally (I didn't want to lead with this, but it needs to be said): Whenever a sentence begins with "not judging you" the rest of the sentence may be safely discounted.

* On the first Paper start-up, which created paper.yml, the server hung without log errors, and had to be manually killed. The results above are from the second and subsequent runs, with the default paper.yml.

commented

can I just say: lol

commented

Any rant that starts with "I do not intend to join a debate" can be safely discounted

commented

Surely you can discern the difference between the two.

But there we have it. You will ignore the inconvenient data, and I will ignore Paper.

Thanks for your time. FWIW, I love EssentialsX. Keep up the good work.