VotingPlugin icon indicating copy to clipboard operation
VotingPlugin copied to clipboard

Suggestion about performing a blocking I/O operation on the main thread

Open FunkyNico opened this issue 2 years ago • 2 comments

Versions VotingPlugin version: 6.9.3 / Purpur: purpur-1.19.2. Purpur-1762.

Context I found this suggestion from another spigot plugin called Lagmonitor : Make stop the plugin from doing a blocking I/O operation on the main thread because this could affect the server performance, the thread pauses until it gets the response. Such operations should be performed asynchronous from the main thread. Besides gameplay performance it could also improve startup time.

java.lang.IllegalAccessException: null at com.github.games647.lagmonitor.threading.BlockingActionManager.logCurrentStack(BlockingActionManager.java:65) ~[LagMonitor.jar:?] at com.github.games647.lagmonitor.threading.BlockingActionManager.checkBlockingAction(BlockingActionManager.java:51) ~[LagMonitor.jar:?] at com.github.games647.lagmonitor.threading.BlockingSecurityManager.checkMainThreadOperation(BlockingSecurityManager.java:40) ~[LagMonitor.jar:?] at com.github.games647.lagmonitor.threading.BlockingSecurityManager.checkPermission(BlockingSecurityManager.java:35) ~[LagMonitor.jar:?] at java.lang.SecurityManager.checkRead(SecurityManager.java:756) ~[?:?] at java.io.File.exists(File.java:829) ~[?:?] at java.io.File.mkdirs(File.java:1403) ~[?:?] at com.bencodez.votingplugin.advancedcore.api.user.userstorage.sql.db.SQLite.getSQLConnection(SQLite.java:96) ~[VotingPlugin.jar:?] at com.bencodez.votingplugin.advancedcore.api.user.userstorage.sql.Table.getRows(Table.java:273) ~[VotingPlugin.jar:?] at com.bencodez.votingplugin.advancedcore.api.user.UserManager.getAllUUIDs(UserManager.java:92) ~[VotingPlugin.jar:?] at com.bencodez.votingplugin.advancedcore.api.user.UserManager.getAllUUIDs(UserManager.java:73) ~[VotingPlugin.jar:?] at com.bencodez.votingplugin.user.UserManager.getAllUUIDs(UserManager.java:76) ~[VotingPlugin.jar:?] at com.bencodez.votingplugin.VotingPluginMetrics$14.call(VotingPluginMetrics.java:180) ~[VotingPlugin.jar:?] at com.bencodez.votingplugin.VotingPluginMetrics$14.call(VotingPluginMetrics.java:176) ~[VotingPlugin.jar:?] at com.bencodez.votingplugin.advancedcore.api.metrics.BStatsMetrics$SimplePie.getChartData(BStatsMetrics.java:716) ~[VotingPlugin.jar:?] at com.bencodez.votingplugin.advancedcore.api.metrics.BStatsMetrics$CustomChart.getRequestJsonObject(BStatsMetrics.java:138) ~[VotingPlugin.jar:?] at com.bencodez.votingplugin.advancedcore.api.metrics.BStatsMetrics$MetricsBase.lambda$submitData$2(BStatsMetrics.java:607) ~[VotingPlugin.jar:?] at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) ~[?:?] at java.util.HashMap$KeySpliterator.forEachRemaining(HashMap.java:1707) ~[?:?] at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) ~[?:?] at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) ~[?:?] at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:575) ~[?:?] at java.util.stream.AbstractPipeline.evaluateToArrayNode(AbstractPipeline.java:260) ~[?:?] at java.util.stream.ReferencePipeline.toArray(ReferencePipeline.java:616) ~[?:?] at com.bencodez.votingplugin.advancedcore.api.metrics.BStatsMetrics$MetricsBase.submitData(BStatsMetrics.java:608) ~[VotingPlugin.jar:?] at org.bukkit.craftbukkit.v1_19_R1.scheduler.CraftTask.run(CraftTask.java:101) ~[purpur-1.19.2.jar:git-Purpur-1762] at org.bukkit.craftbukkit.v1_19_R1.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:483) ~[purpur-1.19.2.jar:git-Purpur-1762] at net.minecraft.server.MinecraftServer.tickChildren(MinecraftServer.java:1519) ~[purpur-1.19.2.jar:git-Purpur-1762] at net.minecraft.server.dedicated.DedicatedServer.tickChildren(DedicatedServer.java:485) ~[purpur-1.19.2.jar:git-Purpur-1762] at net.minecraft.server.MinecraftServer.tickServer(MinecraftServer.java:1443) ~[purpur-1.19.2.jar:git-Purpur-1762] at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1213) ~[purpur-1.19.2.jar:git-Purpur-1762] at net.minecraft.server.MinecraftServer.lambda$spin$1(MinecraftServer.java:310) ~[purpur-1.19.2.jar:git-Purpur-1762] at java.lang.Thread.run(Thread.java:833) ~[?:?]

Thanks =D.

FunkyNico avatar Aug 20 '22 03:08 FunkyNico

https://bencodez.com/job/VotingPlugin/ Better?

BenCodez avatar Aug 20 '22 11:08 BenCodez

Yeah, now when i start the server it loads without gave the message, but now it haves the same suggestion when the server is stopped anyways this should not be an issue. Greetings.

FunkyNico avatar Aug 20 '22 17:08 FunkyNico

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

stale[bot] avatar Oct 01 '22 05:10 stale[bot]