x4e / paperbin Goto Github PK
View Code? Open in Web Editor NEWAn experiment at improving the performance of PaperMC
License: Other
An experiment at improving the performance of PaperMC
License: Other
java.lang.NullPointerException
...
at net.minecraft.server.v1_12_R1.PlayerConnection.validateBook(PlayerConnection.java:2334) ~[patched_1.12.2.jar:git-Paper-1596]
...
There are no clear instructions on how to build and use the latest version of paperBin (with the new features since the last release)
I tried ./gradlew build, but it fails
Unload chunks that only contain dead entities (Maybe also stop sending updates to dead entities, stops death screen spectating)
Putting farm crops / tree decay ticks on a seperate thread would be nice, so you don't have to disable / lower it.
java -server -Xms16G -Xmx16G -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+UnlockDiagnosticVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1NewSizePercent=40 -XX:G1MaxNewSizePercent=50 -XX:G1HeapRegionSize=16M -XX:G1ReservePercent=15 -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=20 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 -Dusing.aikars.flags=https://mcflags.emc.gs -Daikars.new.flags=true -XX:-UseBiasedLocking -XX:UseAVX=2 -XX:+UseStringDeduplication -XX:+UseFastUnorderedTimeStamps -XX:+UseAES -XX:+UseAESIntrinsics -XX:UseSSE=4 -XX:AllocatePrefetchStyle=1 -XX:+UseLoopPredicate -XX:+RangeCheckElimination -XX:+EliminateLocks -XX:+DoEscapeAnalysis -XX:+UseCodeCacheFlushing -XX:+UseFastJNIAccessors -XX:+OptimizeStringConcat -XX:+UseCompressedOops -XX:+UseThreadPriorities -XX:+OmitStackTraceInFastThrow -XX:+TrustFinalNonStaticFields -XX:ThreadPriorityPolicy=1 -XX:+UseInlineCaches -XX:+RewriteBytecodes -XX:+RewriteFrequentPairs -XX:+UseNUMA -XX:-DontCompileHugeMethods -XX:+UseCMoveUnconditionally -XX:+UseFPUForSpilling -XX:+UseNewLongLShift -XX:+UseVectorCmov -XX:+UseXMMForArrayCopy -XX:+UseXmmI2D -XX:+UseXmmI2F -XX:+UseXmmLoadAndClearUpper -XX:+UseXmmRegToRegMoveAll -Dfile.encoding=UTF-8 -Djdk.nio.maxCachedBufferSize=262144 -Dgraal.TuneInlinerExploration=1 -Dgraal.CompilerConfiguration=enterprise -Dgraal.UsePriorityInlining=true -Dgraal.Vectorization=true -Dgraal.OptDuplication=true -Dgraal.DetectInvertedLoopsAsCounted=true -Dgraal.LoopInversion=true -Dgraal.VectorizeHashes=true -Dgraal.EnterprisePartialUnroll=true -Dgraal.VectorizeSIMD=true -Dgraal.StripMineNonCountedLoops=true -Dgraal.SpeculativeGuardMovement=true -Dgraal.InfeasiblePathCorrelation=true -agentpath:JvmClassHook.dll -jar PaperBin.jar cache/patched_1.12.2.jar nogui
Paperbin Agent Loaded
thread '' panicked at 'Couldn't fetch jvmti instance (-3)', src/utils.rs:24:13
note: run with RUST_BACKTRACE=1
environment variable to display a backtrace
Upon trying to start server (java -Xms128M -Xmx2048M -jar PaperBin.jar Paper.jar), the following error is given:
/lib64/libc.so.6: version `GLIBC_2.18' not found
This happens on an install of CentOS 7, which does not have Glibc v2.18.
Any ideas?
When I was running the jar compiled by my self, it showed me an error
Couldn't fetch jvmti instance (-3)
What should I do to solve this question?
The command lines that I used to compile
cd src/main/rust
cargo build --release --target x86_64-pc-windows-gnu
cd ../../..
./gradlew build || exit 1
GCC Version: x86_64-8.1.0-posix-seh-rt_v6-rev0
Java Version: AdoptOpenJDK 11.0.10
OS is Ubuntu MATE 18.04.3 LTS with Linux kernel 5.2.11 64 bit
openjdk version "1.8.0_252"
OpenJDK Runtime Environment (build 1.8.0_252-8u252-b09-1~18.04-b09)
OpenJDK 64-Bit Server VM (build 25.252-b09, mixed mode)
server is running Paper version git-Paper-1618 (MC: 1.12.2) (Implementing API version 1.12.2-R0.1-SNAPSHOT)
PaperBin 1.0
/home/hub/Minecraft# java -Xms1G -Xmx14848M -noverify -jar PaperBin.jar spigot.jar
Exception in thread "main" java.lang.UnsatisfiedLinkError: sun.tools.attach.WindowsVirtualMachine.init()V
at sun.tools.attach.WindowsVirtualMachine.init(Native Method)
at sun.tools.attach.WindowsVirtualMachine.<clinit>(WindowsVirtualMachine.java:192)
at sun.tools.attach.WindowsAttachProvider.attachVirtualMachine(WindowsAttachProvider.java:69)
at com.sun.tools.attach.VirtualMachine.attach(VirtualMachine.java:208)
at dev.binclub.paperbin.utils.InstrumentationFactory.loadAgent(InstrumentationFactory.kt:73)
at dev.binclub.paperbin.utils.InstrumentationFactory.access$loadAgent(InstrumentationFactory.kt:14)
at dev.binclub.paperbin.utils.InstrumentationFactory$instrumentation$2.invoke(InstrumentationFactory.kt:23)
at dev.binclub.paperbin.utils.InstrumentationFactory$instrumentation$2.invoke(InstrumentationFactory.kt:14)
at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74)
at dev.binclub.paperbin.utils.InstrumentationFactory.getInstrumentation(InstrumentationFactory.kt)
at dev.binclub.paperbin.MainKt.main(Main.kt:27)
This could just be an issue of you developed it in windows and that this isn't meant for Linux
OS: Windows 10
Java Version:
java version "13.0.1" 2019-10-15
Java(TM) SE Runtime Environment (build 13.0.1+9)
Java HotSpot(TM) 64-Bit Server VM (build 13.0.1+9, mixed mode, sharing)
Server Version: Paper version git-Paper-1618 (MC: 1.12.2) (Implementing API version 1.12.2-R0.1-SNAPSHOT)
PaperBin 1.561
C:\Users\x\Desktop\servers\c>java -Xmx1000m -Xms1000m -noverify -jar PaperBin.jar paper-1618.jar nogui
Java HotSpot(TM) 64-Bit Server VM warning: Options -Xverify:none and -noverify were deprecated in JDK 13 and will likely be removed in a future release.
Exception in thread "main" java.lang.NullPointerException
at dev.binclub.paperbin.MainKt.main(Main.kt:29)
It doesn't seem to be working. Here is my start command:
java -XX:+UnlockExperimentalVMOptions -XX:+UseZGC -Xms16G -Xmx16G -XX:+UseLargePages -agentpath:/home/user/lab/PaperBin/nativeloadhook/target/release/libJvmClassHook.so -jar PaperBin.jar cache/patched_1.12.2.jar -o true
And here is what I get (I have ~27G of free RAM):
Paperbin Agent Loaded
[0.024s][error][gc] Failed to commit memory (Not enough space)
[0.024s][error][gc] Failed to commit memory (Not enough space)
[0.024s][error][gc] Failed to commit memory (Not enough space)
[0.024s][error][gc] Failed to commit memory (Not enough space)
[0.024s][error][gc] Failed to commit memory (Not enough space)
[0.024s][error][gc] Failed to commit memory (Not enough space)
[0.024s][error][gc] Failed to commit memory (Not enough space)
[0.024s][error][gc] Failed to commit memory (Not enough space)
[0.024s][error][gc] Failed to commit memory (Not enough space)
[0.024s][error][gc] Failed to commit memory (Not enough space)
[0.024s][error][gc] Failed to commit memory (Not enough space)
[0.024s][error][gc] Forced to lower max Java heap size from 16384M(100%) to 0M(0%)
[0.024s][error][gc] Failed to allocate initial Java heap (1024M)
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
Description: Exception ticking world
java.util.ConcurrentModificationException
at java.util.HashMap$HashIterator.nextNode(HashMap.java:1445)
at java.util.HashMap$EntryIterator.next(HashMap.java:1479)
at java.util.HashMap$EntryIterator.next(HashMap.java:1477)
at dev.binclub.paperbin.transformers.CustomLightingQueue.processQueue(LightUpdateRateLimiter.kt:200)
at dev.binclub.paperbin.transformers.CustomLightingQueue.PROCESSNEIGHBOURQUEUE(LightUpdateRateLimiter.kt)
at dev.binclub.paperbin.transformers.CustomLightingQueue.processUnload(LightUpdateRateLimiter.kt:235)
at net.minecraft.server.v1_12_R1.ChunkProviderServer.unloadChunk(ChunkProviderServer.java:397)
at net.minecraft.server.v1_12_R1.ChunkProviderServer.unloadChunks(ChunkProviderServer.java:354)
at net.minecraft.server.v1_12_R1.WorldServer.doTick(WorldServer.java:309)
at net.minecraft.server.v1_12_R1.MinecraftServer.D(MinecraftServer.java:905)
at net.minecraft.server.v1_12_R1.DedicatedServer.D(DedicatedServer.java:425)
at net.minecraft.server.v1_12_R1.MinecraftServer.C(MinecraftServer.java:774)
at net.minecraft.server.v1_12_R1.MinecraftServer.run(MinecraftServer.java:666)
at java.lang.Thread.run(Thread.java:748)
-- Head --
Thread: Server thread
Stacktrace:
at java.util.HashMap$HashIterator.nextNode(HashMap.java:1445)
at java.util.HashMap$EntryIterator.next(HashMap.java:1479)
at java.util.HashMap$EntryIterator.next(HashMap.java:1477)
at dev.binclub.paperbin.transformers.CustomLightingQueue.processQueue(LightUpdateRateLimiter.kt:200)
at dev.binclub.paperbin.transformers.CustomLightingQueue.PROCESSNEIGHBOURQUEUE(LightUpdateRateLimiter.kt)
at dev.binclub.paperbin.transformers.CustomLightingQueue.processUnload(LightUpdateRateLimiter.kt:235)
at net.minecraft.server.v1_12_R1.ChunkProviderServer.unloadChunk(ChunkProviderServer.java:397)
at net.minecraft.server.v1_12_R1.ChunkProviderServer.unloadChunks(ChunkProviderServer.java:354)
at net.minecraft.server.v1_12_R1.WorldServer.doTick(WorldServer.java:309)
Using ccspigot and paperbin
needs more rust
Hi, my players noticed a new dupe exploit involving PaperBin on server restarts/crashes. Items are being duplicated by moving things from enderchest to normal chests. I thinks it has something to do with world/player files being saved separately.
Another thing I noticed the server can be crashed more easily when I'm running PaperBin. After the crash I got hs_err files which I suppose unique to PaperBin as I never got them running other builds. The players are also lose their 0.5-1 hour progress which can be dupe exploited too.
Thanks for your work anyway, it's a great project, I hope you're not abandoning that
Because the string you received is guaranteed to be valid.
Asynchronous liquid flowing and maybe tps compensation
root@ns524414:~/PaperAnarchy# java -Xmx1000m -Xms1000m -noverify -jar PaperBin.jar paper-1.12.2-1618\ (1).jar nogui
[paperbin INFO] Registering transformers...
[paperbin INFO] Make sure to enable queue-light-updates in paper config
[paperbin WARNING] WARNING: A fatal exception occured while initialising PaperBin 1.81
System Info:
Title: OpenJDK 64-Bit Server VM
Vendor: Private Build
Version: 1.8.0_292
RT Version: 1.8.0_292-8u292-b10-0ubuntu1~20.10-b10
OS: Linux
OS_V: 5.8.0-50-generic
Arch: amd64
JHome: /usr/lib/jvm/java-8-openjdk-amd64/jre
Bukkit Version: null
Bukkit Server Version: null
Minecraft Version: null
[paperbin SEVERE]
java.lang.UnsatisfiedLinkError: dev.binclub.paperbin.native.NativeAccessor.registerClassLoadHook(Ldev/binclub/paperbin/native/PaperBinClassTransformer;)V
at dev.binclub.paperbin.native.NativeAccessor.registerClassLoadHook(Native Method)
at dev.binclub.paperbin.MainKt.main(Main.kt:28)
According to Apache's website here,
Commons RNG provides implementations of pseudo-random numbers generators that are either faster or of higher quality (and sometimes both) than java.util.Random.
Here is a related patch:
https://github.com/YatopiaMC/Yatopia/blob/f8c5c21e381f4f8573e76f52a9f96666b3fbf219/patches/removed/server/0061-Use-faster-random-implementation.patch
I'm just too lazy to do it ¯\(ツ)/¯
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.