Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

permissions registering on reload causing thread dump #128

Closed
MementoAequitas opened this issue Nov 6, 2022 · 3 comments
Closed

permissions registering on reload causing thread dump #128

MementoAequitas opened this issue Nov 6, 2022 · 3 comments
Labels
bug Something isn't working

Comments

@MementoAequitas
Copy link

Describe the bug

When creating many forms, and when using /forms reload, thread dumps occur as the server cannot keep up with registering both permissions 'use' and 'commands'.

To Reproduce

  1. Write a bunch of forms
  2. use 'forms reload' in console
  3. watch thread dumps.

Expected behaviour

The /forms reload command should reload the plugin, while not causing thread dumps.

Screenshots / Videos

15:07:10 ERROR: Current Thread: Server thread
15:07:10 ERROR: PID: 23 | Suspended: false | Native: false | State: RUNNABLE
15:07:10 ERROR: Stack:
15:07:10 ERROR: java.base@17.0.2/java.lang.StringLatin1.toLowerCase(StringLatin1.java:441)
15:07:10 ERROR: java.base@17.0.2/java.lang.String.toLowerCase(String.java:3388)
15:07:10 ERROR: org.bukkit.plugin.SimplePluginManager.unsubscribeFromPermission(SimplePluginManager.java:869)
15:07:10 ERROR: org.bukkit.permissions.PermissibleBase.clearPermissions(PermissibleBase.java:185)
15:07:10 ERROR: org.bukkit.permissions.PermissibleBase.recalculatePermissions(PermissibleBase.java:165)
15:07:10 ERROR: org.bukkit.craftbukkit.v1_19_R1.entity.CraftHumanEntity.recalculatePermissions(CraftHumanEntity.java:257)
15:07:10 ERROR: org.bukkit.plugin.SimplePluginManager.dirtyPermissibles(SimplePluginManager.java:850)
15:07:10 ERROR: org.bukkit.plugin.SimplePluginManager.calculatePermissionDefault(SimplePluginManager.java:835)
15:07:10 ERROR: org.bukkit.plugin.SimplePluginManager.addPermission(SimplePluginManager.java:796)
15:07:10 ERROR: org.bukkit.plugin.SimplePluginManager.addPermission(SimplePluginManager.java:784)
15:07:10 ERROR: CrossplatForms-Spigot.jar//dev.kejona.crossplatforms.spigot.common.handler.SpigotHandler.registerPermission(SpigotHandler.java:117)
15:07:10 ERROR: CrossplatForms-Spigot.jar//dev.kejona.crossplatforms.handler.ServerHandler.registerPermission(ServerHandler.java:61)
15:07:10 ERROR: CrossplatForms-Spigot.jar//dev.kejona.crossplatforms.interfacing.bedrock.BedrockFormRegistry.load(BedrockFormRegistry.java:53)
15:07:10 ERROR: CrossplatForms-Spigot.jar//dev.kejona.crossplatforms.interfacing.bedrock.BedrockFormRegistry.reload(BedrockFormRegistry.java:71)
15:07:10 ERROR: CrossplatForms-Spigot.jar//dev.kejona.crossplatforms.reloadable.ReloadableRegistry.reloadAll(ReloadableRegistry.java:46)
15:07:10 ERROR: CrossplatForms-Spigot.jar//dev.kejona.crossplatforms.command.defaults.ReloadCommand.lambda$register$0(ReloadCommand.java:26)
15:07:10 ERROR: CrossplatForms-Spigot.jar//dev.kejona.crossplatforms.command.defaults.ReloadCommand$$Lambda$9463/0x0000000802a361e8.execute(Unknown Source)
15:07:10 ERROR: CrossplatForms-Spigot.jar//dev.kejona.crossplatforms.shaded.cloud.execution.CommandExecutionHandler.executeFuture(CommandExecutionHandler.java:95)
15:07:10 ERROR: CrossplatForms-Spigot.jar//dev.kejona.crossplatforms.shaded.cloud.execution.CommandExecutionCoordinator$SimpleCoordinator.coordinateExecution(CommandExecutionCoordinator.java:123)
15:07:10 ERROR: CrossplatForms-Spigot.jar//dev.kejona.crossplatforms.shaded.cloud.CommandManager.executeCommand(CommandManager.java:188)
15:07:10 ERROR: CrossplatForms-Spigot.jar//dev.kejona.crossplatforms.shaded.cloud.bukkit.BukkitCommand.execute(BukkitCommand.java:116)
15:07:10 ERROR: org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:155)
15:07:10 ERROR: org.bukkit.craftbukkit.v1_19_R1.CraftServer.dispatchCommand(CraftServer.java:911)
15:07:10 ERROR: org.bukkit.craftbukkit.v1_19_R1.command.BukkitCommandWrapper.run(BukkitCommandWrapper.java:64)
15:07:10 ERROR: com.mojang.brigadier.CommandDispatcher.execute(CommandDispatcher.java:264)
15:07:10 ERROR: net.minecraft.commands.Commands.performCommand(Commands.java:305)
15:07:10 ERROR: net.minecraft.commands.Commands.performCommand(Commands.java:289)
15:07:10 ERROR: net.minecraft.server.network.ServerGamePacketListenerImpl.performChatCommand(ServerGamePacketListenerImpl.java:2292)
15:07:10 ERROR: net.minecraft.server.network.ServerGamePacketListenerImpl.lambda$handleChatCommand$20(ServerGamePacketListenerImpl.java:2246)
15:07:10 ERROR: net.minecraft.server.network.PlayerConnection$$Lambda$13500/0x0000000803b2bd90.run(Unknown Source)
15:07:10 ERROR: net.minecraft.util.thread.BlockableEventLoop.lambda$submitAsync$0(BlockableEventLoop.java:59)
15:07:10 ERROR: net.minecraft.util.thread.IAsyncTaskHandler$$Lambda$13501/0x0000000803b2e000.get(Unknown Source)
15:07:10 ERROR: java.base@17.0.2/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1768)
15:07:10 ERROR: net.minecraft.server.TickTask.run(TickTask.java:18)
15:07:10 ERROR: net.minecraft.util.thread.BlockableEventLoop.doRunTask(BlockableEventLoop.java:153)
15:07:10 ERROR: net.minecraft.util.thread.ReentrantBlockableEventLoop.doRunTask(ReentrantBlockableEventLoop.java:24)
15:07:10 ERROR: net.minecraft.server.MinecraftServer.doRunTask(MinecraftServer.java:1361)
15:07:10 ERROR: net.minecraft.server.MinecraftServer.d(MinecraftServer.java:185)
15:07:10 ERROR: net.minecraft.util.thread.BlockableEventLoop.pollTask(BlockableEventLoop.java:126)
15:07:10 ERROR: net.minecraft.server.MinecraftServer.pollTaskInternal(MinecraftServer.java:1338)
15:07:10 ERROR: net.minecraft.server.MinecraftServer.pollTask(MinecraftServer.java:1331)
15:07:10 ERROR: net.minecraft.util.thread.BlockableEventLoop.runAllTasks(BlockableEventLoop.java:114)
15:07:10 ERROR: net.minecraft.server.MinecraftServer.tickServer(MinecraftServer.java:1465)
15:07:10 ERROR: net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1193)
15:07:10 ERROR: net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:305)
15:07:10 ERROR: net.minecraft.server.MinecraftServer$$Lambda$4309/0x00000008014d5618.run(Unknown Source)
15:07:10 ERROR: java.base@17.0.2/java.lang.Thread.run(Thread.java:833)
15:07:10 ERROR: ------------------------------
15:07:10 ERROR: --- DO NOT REPORT THIS TO PAPER - THIS IS NOT A BUG OR A CRASH ---
15:07:10 ERROR: ------------------------------
s

Server Version and Plugins

No response

Geyser Dump

No response

CrossplatForms Version

CForms Version: 1.4.0, Branch: main, Build: 28, Commit: 9b2ad7c

Additional Context

Suggestion:

allow on config setup to decide which permissions need to be registered, instead of them doing so automatically for each form/command.

@Konicai Konicai added the bug Something isn't working label Nov 8, 2022
@Konicai
Copy link
Member

Konicai commented Nov 13, 2022

Try the dev branch please

@MementoAequitas
Copy link
Author

MementoAequitas commented Nov 13, 2022

seems to be working great!

[07:36:01 INFO]: MementoAequitas issued server command: /forms reload
[07:36:01 INFO]: [CForms] config.yml is at the correct version: 3
[07:36:01 INFO]: [CForms] bedrock-forms.yml is at the correct version: 5
[07:36:01 INFO]: [CForms] java-menus.yml is at the correct version: 2
[07:36:01 INFO]: [CForms] access-items.yml is at the correct version: 4
[07:36:01 INFO]: [CForms] Reloaded the configuration, reloading modules...
[07:36:01 INFO]: [CForms] Reloading BedrockFormRegistry
[07:36:01 INFO]: [CForms] Reloading JavaMenuRegistry
[07:36:01 INFO]: [CForms] Reloading SpigotAccessItems
[07:36:01 INFO]: [CForms] Reloading CustomCommandManager
[07:36:01 INFO]: [CForms] Successfully reloaded
[07:36:01 INFO]: [CForms] Registering permissions to LP:
[07:36:01 INFO]: [CForms]       crossplatforms.form.bvinegrowth.command : TRUE
[07:36:01 INFO]: [CForms]       crossplatforms.form.help.use : TRUE
[07:36:01 INFO]: [CForms]       crossplatforms.form.bmonsterspawns.command : TRUE
[07:36:01 INFO]: [CForms]       crossplatforms.form.bplantgrowth.command : TRUE
[07:36:01 INFO]: [CForms]       crossplatforms.form.bwarps.use : TRUE
[07:36:01 INFO]: [CForms]       crossplatforms.form.brules.use : TRUE
[07:36:01 INFO]: [CForms]       crossplatforms.form.blockeddoors.command : TRUE
[07:36:01 INFO]: [CForms]       crossplatforms.form.brewards.command : TRUE
[07:36:01 INFO]: [CForms]       crossplatforms.form.bmodticket.command : TRUE
[07:36:01 INFO]: [CForms]       crossplatforms.form.biceformation.command : TRUE
[07:36:01 INFO]: [CForms]       crossplatforms.form.benderpearl.command : TRUE
[07:36:01 INFO]: [CForms]       crossplatforms.form.bmodticket.use : TRUE
[07:36:01 INFO]: [CForms]       crossplatforms.form.benderpearl.use : TRUE
[07:36:01 INFO]: [CForms]       crossplatforms.form.bmobspawns.use : TRUE
[07:36:01 INFO]: [CForms]       crossplatforms.form.bwarps.command : TRUE
[07:36:01 INFO]: [CForms]       crossplatforms.form.biceformation.use : TRUE
[07:36:01 INFO]: [CForms]       crossplatforms.form.blecternuse.command : TRUE
[07:36:01 INFO]: [CForms]       crossplatforms.form.bmonsterspawns.use : TRUE
[07:36:01 INFO]: [CForms]       crossplatforms.form.bshops.use : TRUE
[07:36:01 INFO]: [CForms]       crossplatforms.form.help.command : TRUE
[07:36:01 INFO]: [CForms]       crossplatforms.form.brules.command : TRUE
[07:36:01 INFO]: [CForms]       crossplatforms.form.bcurrencyinfo.use : TRUE
[07:36:01 INFO]: [CForms]       crossplatforms.form.bclaimadjustments.use : TRUE
[07:36:01 INFO]: [CForms]       crossplatforms.form.binfo.command : TRUE
[07:36:01 INFO]: [CForms]       crossplatforms.form.bsurvivalwarps.use : TRUE
[07:36:01 INFO]: [CForms]       crossplatforms.form.bmodhelp.use : TRUE
[07:36:01 INFO]: [CForms]       crossplatforms.form.blockeddoors.use : TRUE
[07:36:01 INFO]: [CForms]       crossplatforms.form.bmodhelp.command : TRUE
[07:36:01 INFO]: [CForms]       crossplatforms.form.bchestshopFAQ.use : TRUE
[07:36:01 INFO]: [CForms]       crossplatforms.form.bstorexpbottle.command : TRUE
[07:36:01 INFO]: [CForms]       crossplatforms.form.bxpbottleinfo.use : TRUE
[07:36:01 INFO]: [CForms]       crossplatforms.form.bmystuff.command : TRUE
[07:36:01 INFO]: [CForms]       crossplatforms.form.bclaiminfo.command : TRUE
[07:36:01 INFO]: [CForms]       crossplatforms.form.bsnowaccumulation.command : TRUE
[07:36:01 INFO]: [CForms]       crossplatforms.form.bchrousfruit.command : TRUE
[07:36:01 INFO]: [CForms]       crossplatforms.form.binfo.use : TRUE
[07:36:01 INFO]: [CForms]       crossplatforms.form.brewards.use : TRUE
[07:36:01 INFO]: [CForms]       crossplatforms.form.bvinegrowth.use : TRUE
[07:36:01 INFO]: [CForms]       crossplatforms.form.bserverselector.use : TRUE
[07:36:01 INFO]: [CForms]       crossplatforms.form.bchestshopFAQ.command : TRUE
[07:36:01 INFO]: [CForms]       crossplatforms.form.bclaiminfo.use : TRUE
[07:36:01 INFO]: [CForms]       crossplatforms.form.bleafdecay.command : TRUE
[07:36:01 INFO]: [CForms]       crossplatforms.form.bmcmmoinfo.use : TRUE
[07:36:01 INFO]: [CForms]       crossplatforms.form.bchestshopbuysell.command : TRUE
[07:36:01 INFO]: [CForms]       crossplatforms.form.bmystuff.use : TRUE
[07:36:01 INFO]: [CForms]       crossplatforms.form.bcurrencyinfo.command : TRUE
[07:36:01 INFO]: [CForms]       crossplatforms.form.bplantgrowth.use : TRUE
[07:36:01 INFO]: [CForms]       crossplatforms.form.bstorexpbottle.use : TRUE
[07:36:01 INFO]: [CForms]       crossplatforms.form.bsurvivalwarps.command : TRUE
[07:36:01 INFO]: [CForms]       crossplatforms.form.bchestshopprice.command : TRUE
[07:36:01 INFO]: [CForms]       crossplatforms.form.bchestshopinfo.command : TRUE
[07:36:01 INFO]: [CForms]       crossplatforms.form.bserverselector.command : TRUE
[07:36:01 INFO]: [CForms]       crossplatforms.form.bshops.command : TRUE
[07:36:01 INFO]: [CForms]       crossplatforms.form.bxpbottleinfo.command : TRUE
[07:36:01 INFO]: [CForms]       crossplatforms.form.bchestshopprice.use : TRUE
[07:36:01 INFO]: [CForms]       crossplatforms.form.bchrousfruit.use : TRUE
[07:36:01 INFO]: [CForms]       crossplatforms.form.bchestshopinfo.use : TRUE
[07:36:01 INFO]: [CForms]       crossplatforms.form.bclaimadjustments.command : TRUE
[07:36:01 INFO]: [CForms]       crossplatforms.form.bchestshopbuysell.use : TRUE
[07:36:01 INFO]: [CForms]       crossplatforms.form.blecternuse.use : TRUE
[07:36:01 INFO]: [CForms]       crossplatforms.form.bvotinginfo.command : TRUE
[07:36:01 INFO]: [CForms]       crossplatforms.form.bleafdecay.use : TRUE
[07:36:01 INFO]: [CForms]       crossplatforms.form.bvotinginfo.use : TRUE
[07:36:01 INFO]: [CForms]       crossplatforms.form.bsnowaccumulation.use : TRUE
[07:36:01 INFO]: [CForms]       crossplatforms.form.bmcmmoinfo.command : TRUE
[07:36:01 INFO]: [CForms]       crossplatforms.form.bmobspawns.command : TRUE

image

@Konicai
Copy link
Member

Konicai commented Nov 13, 2022

Thanks!

@Konicai Konicai closed this as completed Nov 13, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants