GeyserMC / Geyser

A bridge/proxy allowing you to connect to Minecraft: Java Edition servers with Minecraft: Bedrock Edition.
https://geysermc.org
MIT License
4.72k stars 678 forks source link

Player get ReadTimeOut on BungeeCord #469

Closed SinonGame closed 3 years ago

SinonGame commented 4 years ago

Describe the bug

When using Geyser on BungeeCord, player sometime get ReadTimeoutException:null, and they keep getting that error, which makes them unjoinable To Reproduce

  1. Set up Geyser on Bungeecord
  2. Make lots of player join
  3. May see the error

Expected behavior

Players can join normally Screenshots / Videos

image Server Version

BungeeCord latest, paper latest Geyser Version

master build 103 Minecraft: Bedrock Edition Version

1.14.6 latest Additional Context

SinonGame commented 4 years ago

If a player died then log out before they respawn, then the server unload the chunk they are in, they won't be able to join if there's no one in that chunk, only getting this error, it seems geyser won't load the chunk if player isn't alive

SinonGame commented 4 years ago

joinrespawn.zip Here's a quick fix plugin for the problem

SlickJava commented 4 years ago

can confirm this happens exactly as said on my server as well

Camotoy commented 4 years ago

Can you confirm if this happens with the Ping Passthrough Rewrite PR?

SinonGame commented 4 years ago

Don't think this is caused by the ping pass through, it's caused because dead players don't load chunks

SlickJava commented 4 years ago

can confirm ping passthrough is unrelated to this, happens with it disabled.

Camotoy commented 4 years ago

Thank you for testing.

SinonGame commented 4 years ago

joinrespawn.zip Here's the source code of the fix plugin I wrote

rcmaehl commented 4 years ago

Have this issue.

  1. Join bungee server
  2. Idle
  3. ReadTimeoutException: null after ~60 seconds
SinonGame commented 4 years ago

Have this issue.

  1. Join bungee server
  2. Idle
  3. ReadTimeoutException: null after ~60 seconds

Check if my plugin fix the problem

toinouH commented 4 years ago

@SinonGame @rcmaehl @SlickJava Does this bug still exist?

SinonGame commented 4 years ago

I'm unable to reproduce the problem, but this maybe need to look into. I wasn't able to find the cause of it.

rcmaehl commented 4 years ago

@toinouH Will do some testing shortly

rcmaehl commented 4 years ago

image

It is significantly better but still an issue

Lobby server:

[22:19:25 INFO]: UUID of player [B]rcmaehl2499 is 00000000-0000-0000-0009-01f8fdbf6fa1 [22:19:25 INFO]: [LP] [b]rcmaehl2499 already inherits from bedrock (bedrock) in context global. [22:19:25 INFO]: [B]rcmaehl2499[/96.28.146.253:42712] logged in with entity id 99 at ([world]-198.76869, 65.0, 147.86754) [22:23:10 INFO]: [B]rcmaehl2499 lost connection: Disconnected [22:23:10 INFO]: See you soon! [Attendee][B]rcmaehl2499

Bungee Proxy:

22:19:19 [INFO] [Geyser-BungeeCord] /96.28.146.253:62157 tried to connect! 22:19:20 [INFO] [Geyser-BungeeCord] Player connected with username rcmaehl2499 22:19:24 [INFO] [Geyser-BungeeCord] Attempting to login using floodgate mode... authentication will be encrypted. 22:19:24 [INFO] [Geyser-BungeeCord] Loaded Floodgate key! 22:19:24 [INFO] [Geyser-BungeeCord] rcmaehl2499 (logged in as: rcmaehl2499) has connected to remote java server on address 172.18.0.4 22:19:24 [INFO] [rcmaehl2499,/172.18.0.4:49456] <-> InitialHandler has connected 22:19:25 [INFO] [B]rcmaehl2499 is not using a VPN or Proxy. 22:19:25 [WARNING] Event PreLoginEvent(cancelled=false, cancelReasonComponents=null, connection=[[B]rcmaehl2499,/96.28.146.253:49456] <-> InitialHandler) took 609ms to process! 22:19:25 [INFO] [Geyser-BungeeCord] Registering bedrock skin for [B]rcmaehl2499 (00000000-0000-0000-0009-01f8fdbf6fa1) 22:19:25 [INFO] [Geyser-BungeeCord] Unable to load bedrock skin for {0} as they are likely using a customised skin 22:19:25 [INFO] [[B]rcmaehl2499] <-> ServerConnector [hub] has connected 22:19:26 [INFO] [Geyser-BungeeCord] Spawned player at -198.769 65 147.868 22:19:56 [INFO] [/75.135.69.8:48979] <-> InitialHandler has pinged 22:23:10 [WARNING] [[B]rcmaehl2499] -> UpstreamBridge - read timed out 22:23:10 [INFO] [Geyser-BungeeCord] rcmaehl2499 has disconnected from remote Java server on address 172.18.0.4 because of "ReadTimeoutException : null" 22:23:10 [INFO] [[B]rcmaehl2499] disconnected with: ReadTimeoutException : null 22:23:10 [INFO] [[B]rcmaehl2499] -> UpstreamBridge has disconnected 22:23:10 [INFO] [[B]rcmaehl2499] <-> DownstreamBridge <-> [hub] has disconnected 22:23:11 [INFO] [Geyser-BungeeCord] Bedrock user with ip: /96.28.146.253 has disconnected for reason CLOSED_BY_REMOTE_PEER

Camotoy commented 4 years ago

If this issue still persists, how can we reproduce it?

anthr76 commented 4 years ago

I'm having this issue on waterfall with paper servers

rcmaehl commented 4 years ago

I'm also running bungeecord servers where the players are having this issue

Camotoy commented 4 years ago

@rcmaehl can you attach a Geyser dump? This can be done with /geyser dump.

anthr76 commented 4 years ago

My issue was resolved, by rolling back SkinRestorer

rcmaehl commented 4 years ago

@rcmaehl can you attach a Geyser dump? This can be done with /geyser dump.

After a timeout or just any time in general?

Camotoy commented 4 years ago

Any time - there is no time-specific information we get from the dump.

rcmaehl commented 4 years ago

https://dump.geysermc.org/hA1DdRncCF9Dub2HFAi5IVFdUC8neAQv

rcmaehl commented 4 years ago

Continuing from discord....

Slingshot doesn't seem to be the full cause but might be part of it. With slingshot enabled, I get the error after ~1.5 minutes. Without it, ~3.5 minutes.

04:15:46 [INFO] [Geyser-BungeeCord] /IP:49504 tried to connect! 04:15:47 [INFO] [Geyser-BungeeCord] Player connected with username rcmaehl2499 04:15:52 [INFO] [Geyser-BungeeCord] Attempting to login using floodgate mode... authentication will be encrypted. 04:15:52 [INFO] [Geyser-BungeeCord] Loaded Floodgate key! 04:15:52 [INFO] [Geyser-BungeeCord] rcmaehl2499 (logged in as: rcmaehl2499) has connected to remote java server on address 172.18.0.12 04:15:52 [INFO] [rcmaehl2499,/172.18.0.12:58380] <-> InitialHandler has connected 04:15:52 [INFO] [Geyser-BungeeCord] Registering bedrock skin for [B]rcmaehl2499 (00000000-0000-0000-0009-01f8fdbf6fa1) 04:15:52 [INFO] [Geyser-BungeeCord] Unable to load bedrock skin for '[B]rcmaehl2499' as they are likely using a customised skin 04:15:52 [INFO] [[B]rcmaehl2499] <-> ServerConnector [hub] has connected 04:15:54 [INFO] [Geyser-BungeeCord] Spawned player at -198.966 65 147.78 04:19:22 [WARNING] [[B]rcmaehl2499] -> UpstreamBridge - read timed out 04:19:22 [INFO] [Geyser-BungeeCord] rcmaehl2499 has disconnected from remote Java server on address 172.18.0.12 because of ReadTimeoutException : null 04:19:22 [INFO] [[B]rcmaehl2499] disconnected with: ReadTimeoutException : null 04:19:22 [INFO] [[B]rcmaehl2499] -> UpstreamBridge has disconnected 04:19:22 [INFO] [[B]rcmaehl2499] <-> DownstreamBridge <-> [hub] has disconnected 04:19:22 [INFO] [Geyser-BungeeCord] Bedrock user with ip: /IP has disconnected for reason CLOSED_BY_REMOTE_PEER

~Enabling all my bungee plugins brings it time until error back down to about 60 seconds.~

Or maybe not, not getting consistent results since the proxy reset outside of 30 second ish intervals, I've seen disconnects at 60, 90, 210, and 300 seconds at this point. I'll try to get more testing done tomorrow

toinouH commented 4 years ago

@rcmaehl Can you give the list of the other plugins on bungeecord and the version of bungeecord and maybe (idk if it's usefull or not) but can you give us the name of your server software (the version too) with the plugins ? If you want you can enable the debug mode in the geyser config. Have a nice day.

Redned235 commented 3 years ago

Is this still an issue?

4o3F commented 3 years ago

Seems it has been fixed

Camotoy commented 3 years ago

Let us know if this still occurs for anyone else!

dayofpay commented 2 years ago

i still have this problem "disconnected with: ReadTimeoutException : null"

ZZZZ-afk commented 2 years ago

I am also facing this issue on my server - "disconnected with: ReadTimeoutException : null"

On my server 3-4 people facing now out of 50

MrDeathMatch commented 1 year ago

Im also getting this error, please fix

liquidman228 commented 1 year ago

Same here. Getting this error after like ~3 hours after restart of my survival server. Then players just cannot join it from the lobby. The only (temporary) solution is to just restart that survival server

AlizerUncaged commented 4 months ago

any fixes for this? still happens