aematsubara / Roulette

The classic casino game now in Minecraft, no need for texture packs.
https://www.spigotmc.org/resources/roulette.82197/
GNU General Public License v3.0
7 stars 8 forks source link

bug: Out of memory error #18

Closed LittleBigBug closed 1 year ago

LittleBigBug commented 1 year ago

After awhile on 1.19.2, a memory leak occurs, and this same error is spammed

I'm using my own build of the plugin, but its only minimal edits for game rules, I don't imagine what reason it could affect this, but i'm not exactly sure where to start debugging this, its hard to reproduce

(Using Aikar's flags, purpur, 30 players, spark heap summary dump)

This error has caused my server to crash a few times now

[00:05:03] [Craft Scheduler Thread - 15353 - Roulette/WARN]: java.lang.OutOfMemoryError: unable to create native thread: possibly out of memory or process/resource limits reached
[00:05:03] [Craft Scheduler Thread - 15353 - Roulette/WARN]:    at java.base/java.lang.Thread.start0(Native Method)
[00:05:03] [Craft Scheduler Thread - 15353 - Roulette/WARN]:    at java.base/java.lang.Thread.start(Thread.java:802)
[00:05:03] [Craft Scheduler Thread - 15353 - Roulette/WARN]:    at java.base/java.util.concurrent.CompletableFuture$ThreadPerTaskExecutor.execute(CompletableFuture.java:444)
[00:05:03] [Craft Scheduler Thread - 15353 - Roulette/WARN]:    at java.base/java.util.concurrent.CompletableFuture.asyncRunStage(CompletableFuture.java:1818)
[00:05:03] [Craft Scheduler Thread - 15353 - Roulette/WARN]:    at java.base/java.util.concurrent.CompletableFuture.runAsync(CompletableFuture.java:2018)
[00:05:03] [Craft Scheduler Thread - 15353 - Roulette/WARN]:    at Roulette-1.9.1-SNAPSHOT-shaded.jar//me.matsubara.roulette.util.xseries.ReflectionUtils.sendPacket(ReflectionUtils.java:220)
[00:05:03] [Craft Scheduler Thread - 15353 - Roulette/WARN]:    at Roulette-1.9.1-SNAPSHOT-shaded.jar//me.matsubara.roulette.model.stand.PacketStand.sendPacket(PacketStand.java:820)
[00:05:03] [Craft Scheduler Thread - 15353 - Roulette/WARN]:    at Roulette-1.9.1-SNAPSHOT-shaded.jar//me.matsubara.roulette.model.stand.PacketStand.sendPacket(PacketStand.java:839)
[00:05:03] [Craft Scheduler Thread - 15353 - Roulette/WARN]:    at Roulette-1.9.1-SNAPSHOT-shaded.jar//me.matsubara.roulette.model.stand.PacketStand.sendPacket(PacketStand.java:824)
[00:05:03] [Craft Scheduler Thread - 15353 - Roulette/WARN]:    at Roulette-1.9.1-SNAPSHOT-shaded.jar//me.matsubara.roulette.model.stand.PacketStand.hideHearts(PacketStand.java:610)
[00:05:03] [Craft Scheduler Thread - 15353 - Roulette/WARN]:    at Roulette-1.9.1-SNAPSHOT-shaded.jar//me.matsubara.roulette.model.stand.PacketStand.lambda$spawn$0(PacketStand.java:355)
[00:05:03] [Craft Scheduler Thread - 15353 - Roulette/WARN]:    at org.bukkit.craftbukkit.v1_19_R1.scheduler.CraftTask.run(CraftTask.java:101)
[00:05:03] [Craft Scheduler Thread - 15353 - Roulette/WARN]:    at org.bukkit.craftbukkit.v1_19_R1.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:57)
[00:05:03] [Craft Scheduler Thread - 15353 - Roulette/WARN]:    at com.destroystokyo.paper.ServerSchedulerReportingWrapper.run(ServerSchedulerReportingWrapper.java:22)
[00:05:03] [Craft Scheduler Thread - 15353 - Roulette/WARN]:    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
[00:05:03] [Craft Scheduler Thread - 15353 - Roulette/WARN]:    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
[00:05:03] [Craft Scheduler Thread - 15353 - Roulette/WARN]:    at java.base/java.lang.Thread.run(Thread.java:833)
aematsubara commented 1 year ago

Probably sending packets sync in PacketStand.class will solve this. Seems to me that a lot of threads are being created because some packets are being sent async; I don't think changing this would affect performance so we can try

PD: Sorry for the wait, I was busy with other things

aematsubara commented 1 year ago

Should be fixed in the latest update, if this error persists open a new issue