generated from WiIIiam278/HuskTemplate
-
-
Notifications
You must be signed in to change notification settings - Fork 16
Open
Description
Environment
- OS: Ubuntu 22.04 (glibc)
- Java: OpenJDK 21 (compatibility level set to JAVA_17 in Fabric Loader)
- Minecraft: 1.20.1
- Fabric Loader: 0.16.14
- Fabric API: 0.92.6+1.20.1
- Mod: PAPIProxyBridge-Fabric 1.8.4
- Other mods: Large pack (~473 mods), including Krypton, C2ME, SimplySkills, SimplySwords, etc.
Description
When running the server with PAPIProxyBridge-Fabric 1.8.4, the server crashes repeatedly with Netty epoll JNI errors. The crash occurs on both Java 21 and Java 17.
Crash Log (excerpt)
[13:05:18] [Netty Epoll Server IO #0/WARN]: An exceptionCaught() event was fired, and it reached at the tail of the pipeline. It usually means the last handler in the pipeline did not handle the exception.
java.lang.NoClassDefFoundError: Could not initialize class io.netty.channel.unix.Errors
at io.netty.channel.unix.Socket.accept(Socket.java:403) ~[netty-transport-native-unix-common-4.1.82.Final.jar:?]
at io.netty.channel.epoll.AbstractEpollServerChannel$EpollServerSocketUnsafe.epollInReady(AbstractEpollServerChannel.java:112) ~[netty-transport-classes-epoll-4.1.82.Final.jar:?]
at io.netty.channel.epoll.AbstractEpollChannel$AbstractEpollUnsafe$1.run(AbstractEpollChannel.java:425) ~[netty-transport-classes-epoll-4.1.82.Final.jar:?]
at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:173) ~[PAPIProxyBridge-Fabric-1.8.4+mc.1.20.1%20(1).jar:?]
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:166) ~[PAPIProxyBridge-Fabric-1.8.4+mc.1.20.1%20(1).jar:?]
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:472) ~[PAPIProxyBridge-Fabric-1.8.4+mc.1.20.1%20(1).jar:?]
at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:406) ~[netty-transport-classes-epoll-4.1.82.Final.jar:?]
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:998) ~[PAPIProxyBridge-Fabric-1.8.4+mc.1.20.1%20(1).jar:?]
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[PAPIProxyBridge-Fabric-1.8.4+mc.1.20.1%20(1).jar:?]
at java.lang.Thread.run(Thread.java:1583) ~[?:?]
Caused by: java.lang.ExceptionInInitializerError: Exception java.lang.UnsatisfiedLinkError: 'int io.netty.channel.unix.ErrorsStaticallyReferencedJniMethods.errorEHOSTUNREACH()' [in thread "Netty Epoll Server IO #0"]
at io.netty.channel.unix.ErrorsStaticallyReferencedJniMethods.errorEHOSTUNREACH(Native Method) ~[PAPIProxyBridge-Fabric-1.8.4+mc.1.20.1%20(1).jar:?]
at io.netty.channel.unix.Errors.<clinit>(Errors.java:62) ~[PAPIProxyBridge-Fabric-1.8.4+mc.1.20.1%20(1).jar:?]
at io.netty.channel.unix.Socket.accept(Socket.java:403) ~[netty-transport-native-unix-common-4.1.82.Final.jar:?]
at io.netty.channel.epoll.AbstractEpollServerChannel$EpollServerSocketUnsafe.epollInReady(AbstractEpollServerChannel.java:112) ~[netty-transport-classes-epoll-4.1.82.Final.jar:?]
at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:499) ~[netty-transport-classes-epoll-4.1.82.Final.jar:?]
at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:397) ~[netty-transport-classes-epoll-4.1.82.Final.jar:?]
... 3 more
Workaround
Adding the JVM flag -Dio.netty.transport.noNative=true allows the server to start and run normally, bypassing native epoll transport.
Expected Behavior
The mod should run without requiring -Dio.netty.transport.noNative=true on supported Linux environments (Ubuntu 22.04 with glibc).
Steps to Reproduce
- Run Fabric server with Java 17 or 21 on Ubuntu 22.04.
- Install PAPIProxyBridge-Fabric 1.8.4.
- Start the server.
- Observe crash loop with Netty epoll JNI errors.
Additional Notes
- Removing PAPIProxyBridge resolves the crash.
- Other mods and Fabric Loader/API are up to date.
- Large modpack present, but crash is isolated to PAPIProxyBridge.
Request
Is PAPIProxyBridge currently incompatible with Netty native transport on Linux? Can support for Java 21 and native epoll be added, or should users rely on the NIO fallback flag?
Metadata
Metadata
Assignees
Labels
No labels