mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-11 17:31:06 +01:00
928bcc8d3a
Upstream has released updates that appear to apply and compile correctly. This update has not been tested by PaperMC and as with ANY update, please do your own testing Bukkit Changes: 09943450 Update SnakeYAML version 5515734f SPIGOT-7162: Incorrect description for Entity#getVehicle javadoc 6f82b381 PR-788: Add getHand() to all relevant events CraftBukkit Changes: aaf484f6f SPIGOT-7163: CraftMerchantRecipe doesn't copy demand and specialPrice from BukkitMerchantRecipe 5329dd6fd PR-1107: Add getHand() to all relevant events 93061706e SPIGOT-7045: Ocelots never spawn with babies with spawn reason OCELOT_BABY
30 lines
1.5 KiB
Diff
30 lines
1.5 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Aikar <aikar@aikar.co>
|
|
Date: Mon, 4 May 2020 01:08:56 -0400
|
|
Subject: [PATCH] Set cap on JDK per-thread native byte buffer cache
|
|
|
|
See: https://www.evanjones.ca/java-bytebuffer-leak.html
|
|
|
|
This is potentially a source of lots of native memory usage.
|
|
|
|
We are clearly seeing native usage upwards to 1-4GB which doesn't make sense.
|
|
|
|
Region File usage fixed in previous patch should of tecnically only been somewhat
|
|
temporary until GC finally gets it some time later, but between all the various
|
|
plugins doing IO on various threads, this hidden detail of the JDK could be
|
|
keeping long lived large direct buffers in cache.
|
|
|
|
Set system properly at server startup if not set already to help protect from this.
|
|
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java
|
|
index cce6886bb3973eed8f0c7ca7b1189547324fd4e2..0aef4fc4a89e627bc80504d7402f1ca2cdc95a74 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/Main.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/Main.java
|
|
@@ -28,6 +28,7 @@ public class Main {
|
|
}
|
|
// Paper end
|
|
// Todo: Installation script
|
|
+ if (System.getProperty("jdk.nio.maxCachedBufferSize") == null) System.setProperty("jdk.nio.maxCachedBufferSize", "262144"); // Paper - cap per-thread NIO cache size
|
|
OptionParser parser = new OptionParser() {
|
|
{
|
|
acceptsAll(Main.asList("?", "help"), "Show the help");
|