GlowstoneMC / Glowstone-Legacy

An open-source server for the Bukkit Minecraft modding interface
Other
363 stars 122 forks source link

java.io.IOException: Broken Pipe from client on whitelist disconnect #510

Open m3rcuriel opened 9 years ago

m3rcuriel commented 9 years ago

When trying to connect to a server that has whitelist enabled, as a player not on the whitelist, you recieve a Broken Pipe error from the client. Possibly caused by Glowstone either a) not sending a graceful disconnect packet, or b) Glowstone sending the packet at the wrong time.

Steps to reproduce: 1) Start server 2) Set whitelist on 3) Connect to server

00000000-000000

turt2live commented 9 years ago

A client log may be helpful

m3rcuriel commented 9 years ago

Client log shows nothing unusual last time I checked. Let me go get that.

turt2live commented 9 years ago

Cannot reproduce at the moment: img

m3rcuriel commented 9 years ago

Okay. I've tested this more. The issue still exists (I believe) within a larger issue. Across two of my own computers, running two different compiled jars and the downloaded jar, as well as any testing done by gratimax, I've recieved a multitude of sporatic errors, ranging from Broken Pipe, to connection reset by peer, to the expected "you are not whitelisted."

jimmikaelkael commented 9 years ago

Please see #373, I've closed the PR because of lack for time to fix this but I think it's all related to the same problem: The JoinGame packet is sent in GlowPlayer constructor which should deferred to after we have ensured that the player can effectively join.

@m3rcuriel it seems like on my PR that turt2live never had this problem, are you like me using Linux ?

m3rcuriel commented 9 years ago

@jimmikaelkael: I've tested client and server, compiled and downloaded, LAN and localhost, on two different networks with radically different latency, on Windows 8, OS X Mavericks, and Arch Linux. Sporadic errors that are apparently random. Feel free to lump this under a larger issue, though. @gratimax and I are trying to diagnose the various connection issues, so this issue is a bit unnecessary.