iceiix / stevenarella

Multi-protocol Minecraft-compatible client written in Rust
Apache License 2.0
1.45k stars 58 forks source link

Crashes with Minestom #503

Open KrystilizeNevaDies opened 3 years ago

KrystilizeNevaDies commented 3 years ago

When you join a 1.16.5 Minestom server, the client crashes.

If it's not in your interest to third party implementations, then that's fine, just wanted to document the issue.

iceiix commented 3 years ago

@KrystilizeNevaDies I am interested in supporting 3rd party servers if I can (first I've heard of https://github.com/Minestom/Minestom, but looks promising), can you include the crash log you're seeing? Or I could try to replicate the issue

KrystilizeNevaDies commented 3 years ago

I'm not sure where to find the log for stevenarella, but it seems to be stevenarella crashing due to a difference in what minestom sends vs a regular server.

Minestom log:

https://haste.adamaq01.fr/duzujutoqa.cs

(The minestom log indicates an abrupt disconnect)

iceiix commented 3 years ago

Saving the server log here:

java.io.IOException: An existing connection was forcibly closed by the remote host
    at java.base/sun.nio.ch.SocketDispatcher.read0(Native Method)
    at java.base/sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:43)
    at java.base/sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:276)
    at java.base/sun.nio.ch.IOUtil.read(IOUtil.java:233)
    at java.base/sun.nio.ch.IOUtil.read(IOUtil.java:223)
    at java.base/sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:358)
    at Minestom Root ClassLoader//io.netty.buffer.PooledByteBuf.setBytes(PooledByteBuf.java:253)
    at Minestom Root ClassLoader//io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:1134)
    at Minestom Root ClassLoader//io.netty.channel.socket.nio.NioSocketChannel.doReadBytes(NioSocketChannel.java:350)
    at Minestom Root ClassLoader//io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:151)
    at Minestom Root ClassLoader//io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:719)
    at Minestom Root ClassLoader//io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:655)
    at Minestom Root ClassLoader//io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:581)
    at Minestom Root ClassLoader//io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:493)
    at Minestom Root ClassLoader//io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
    at Minestom Root ClassLoader//io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
    at Minestom Root ClassLoader//io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
    at java.base/java.lang.Thread.run(Thread.java:834)
io.netty.channel.StacklessClosedChannelException
    at io.netty.channel.AbstractChannel$AbstractUnsafe.write(Object, ChannelPromise)(Unknown Source)
io.netty.channel.StacklessClosedChannelException
    at io.netty.channel.AbstractChannel$AbstractUnsafe.write(Object, ChannelPromise)(Unknown Source)
...

For the client log, it can be found by running from the console, or client.log in the application configuration directory (I should document this):

// Lin: Some(~/.config)
// Win: Some(C:\Users\user\AppData\Roaming\Stevenarella)
// Mac: Some(~/Library/Application Support/Stevenarella)