[MC-823] Packets generated by third parties can cause heavy lag Created: 27/Oct/12  Updated: 26/Nov/13  Resolved: 26/Nov/13

Status: Resolved
Project: Minecraft: Java Edition
Component/s: None
Affects Version/s: Minecraft 1.4.1, Minecraft 1.4.5, Minecraft 1.5
Fix Version/s: None

Type: Bug
Reporter: Anthony Martin Assignee: Unassigned
Resolution: Duplicate Votes: 7
Labels: multiplayer, protocol, server
Environment:
  • Processor: 2 GHz Intel Core i7
  • System Memory: 8 GB 1333 MHz DDR3
  • Operating System: Mac OS X (x86_64) version 10.8.1
  • Java Version: 1.7.0_07, Oracle Corporation
  • Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
  • Memory: 918602576 bytes (876 MB) / 3221225472 bytes (3072 MB) up to 3221225472 bytes (3072 MB)
  • JVM Flags: 5 total; -Xmx3G -Xms3G -Xloggc:server_gc.log -XX:+UseG1GC -XX:+DisableExplicitGC

Issue Links:
Duplicate
duplicates MC-271 Buffer Overrun [?] Causes SMP Lock Up Resolved
is duplicated by MC-964 Multiple "Kicked for floating too lon... Resolved
CHK:
Confirmation Status: Unconfirmed
Game Mode: Survival

 Description   

Basically, certain poorly designed third party clients can cause heavy lag in multiplayer.

Minecraft 1.3.1 and prior did not handle this very well at all. Once a third party client did this, the server would go unresponsive and eventually crash. But in 1.4, the CPU goes into very high utilization and recovers, usually within two minutes.

During the recovery time, there is very heavy lag noticed by all the players still connected.

So a lot of progress has been made to improve the situation since 1.3.1. I'm sure it's not a trivial task to make it even better, but this lag is highly disruptive. Of course, adding a whitelist would mitigate it greatly, some servers opt to go without a whitelist.

Here is an example from the server log of the kind of activity that causes this situation.

2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [WARNING] KARLOX_11 was kicked for floating too long!
2012-10-26 17:08:12 [INFO] KARLOX_11 lost connection: disconnect.endOfStream


 Comments   
Comment by [Mod] CubeTheThird [ 26/Sep/13 ]

Is this still a concern in the current Minecraft version 1.6.4 / Launcher version 1.2.5 ? If so, please update the affected versions in order to best aid Mojang ensuring bugs are still valid in the latest releases/pre-releases.

Comment by Anthony Martin [ 15/Mar/13 ]

Not sure if it's related, but right after someone got kicked for flying, the server wouldn't take a /stop command. After ^C, it finally stopped, then spit out a bunch of ConcurrentModification exceptions on the console. I couldn't capture them in time to include them here. They were not logged, must displayed on the console.

Comment by Anthony Martin [ 15/Mar/13 ]

Yes, in 1.5 as well as the snapshot (13w11a), the server seems even more susceptible to this problem.

Comment by Tails [ 14/Mar/13 ]

Is this still a concern in the current Minecraft version? If so, please update the affected versions in order to best aid Mojang ensuring bugs are still valid in the latest releases/pre-releases.

Comment by Kumasasa [ 01/Dec/12 ]

Ok, thanks for the update.

Comment by Anthony Martin [ 01/Dec/12 ]

This is still very much a concern in 1.4.5. Lag generated by these players is very disruptive. I believe the players who generate these packets are using a combination of both fly and speed hacks. Many players can "tune" their clients to avoid getting kicked. But others intentionally try to generate packets that the server can't handle specifically to create a denial of service attack.

Comment by Kumasasa [ 01/Dec/12 ]

Is this still a concern in the current Minecraft version? If so, please update the affected versions in order to best aid Mojang ensuring bugs are still valid in the latest releases/pre-releases.

Comment by Anthony Martin [ 29/Oct/12 ]

In another incident, a player claimed:

2012-10-29 09:01:37 [INFO] <##REDACTED##> ok i used fly set 15000 now im at 3048343 and z is 42568
2012-10-29 09:01:38 [INFO] <##REDACTED##> :D

Shortly after that, the server went unresponsive. Apparently his third party client could overpower the server this way. I checked the region files, and region r.5953.83.mca was never generated (thankfully).

Generated at Sun Jan 12 11:52:20 UTC 2025 using Jira 9.12.2#9120002-sha1:301bf498dd45d800842af0b84230f1bb58606c13.