CortexPE / TeaSpoon

☕ A PLUGIN to Extend PMMP's Functionality without completely changing it.
GNU Affero General Public License v3.0
143 stars 100 forks source link

[Crash Server] InvalidArgumentException: "NBT encoded length must be < 32768, got 33310 bytes" (EXCEPTION) in "src/pocketmine/network/mcpe/NetworkBinaryStream" at line 114 #335

Closed teracube closed 5 years ago

teracube commented 5 years ago

https://poggit.pmmp.io/r/45608/TeaSpoon_dev-257.phar https://jenkins.pmmp.io/job/PocketMine-MP/1642/artifact/PocketMine-MP.phar

2018-11-23 [21:23:38] [Server thread/CRITICAL]: InvalidArgumentException: "NBT encoded length must be < 32768, got 33310 bytes" (EXCEPTION) in "src/pocketmine/network/mcpe/NetworkBinaryStream" at line 114
2018-11-23 [21:23:38] [Server thread/DEBUG]: #0 src/pocketmine/network/mcpe/protocol/InventorySlotPacket(50): pocketmine\network\mcpe\NetworkBinaryStream->putSlot(pocketmine\item\WritableBook object)
2018-11-23 [21:23:38] [Server thread/DEBUG]: #1 src/pocketmine/network/mcpe/protocol/DataPacket(89): pocketmine\network\mcpe\protocol\InventorySlotPacket->encodePayload()
2018-11-23 [21:23:38] [Server thread/DEBUG]: #2 src/pocketmine/network/mcpe/RakLibInterface(226): pocketmine\network\mcpe\protocol\DataPacket->encode()
2018-11-23 [21:23:38] [Server thread/DEBUG]: #3 src/pocketmine/Player(3114): pocketmine\network\mcpe\RakLibInterface->putPacket(pocketmine\Player object, pocketmine\network\mcpe\protocol\InventorySlotPacket object, boolean , boolean )
2018-11-23 [21:23:38] [Server thread/DEBUG]: #4 src/pocketmine/Player(3134): pocketmine\Player->sendDataPacket(pocketmine\network\mcpe\protocol\InventorySlotPacket object, boolean , boolean )
2018-11-23 [21:23:38] [Server thread/DEBUG]: #5 src/pocketmine/inventory/BaseInventory(470): pocketmine\Player->dataPacket(pocketmine\network\mcpe\protocol\InventorySlotPacket object)
2018-11-23 [21:23:38] [Server thread/DEBUG]: #6 src/pocketmine/inventory/BaseInventory(425): pocketmine\inventory\BaseInventory->sendSlot(integer 3, array Array())
2018-11-23 [21:23:38] [Server thread/DEBUG]: #7 src/pocketmine/inventory/BaseInventory(176): pocketmine\inventory\BaseInventory->onSlotChange(integer 3, pocketmine\item\WritableBook object, boolean 1)
2018-11-23 [21:23:38] [Server thread/DEBUG]: #8 src/pocketmine/Player(3048): pocketmine\inventory\BaseInventory->setItem(integer 3, pocketmine\item\WritableBook object)
2018-11-23 [21:23:38] [Server thread/DEBUG]: #9 src/pocketmine/network/mcpe/PlayerNetworkSessionAdapter(242): pocketmine\Player->handleBookEdit(pocketmine\network\mcpe\protocol\BookEditPacket object)
2018-11-23 [21:23:38] [Server thread/DEBUG]: #10 src/pocketmine/network/mcpe/protocol/BookEditPacket(117): pocketmine\network\mcpe\PlayerNetworkSessionAdapter->handleBookEdit(pocketmine\network\mcpe\protocol\BookEditPacket object)
2018-11-23 [21:23:38] [Server thread/DEBUG]: #11 src/pocketmine/network/mcpe/PlayerNetworkSessionAdapter(96): pocketmine\network\mcpe\protocol\BookEditPacket->handle(pocketmine\network\mcpe\PlayerNetworkSessionAdapter object)
2018-11-23 [21:23:38] [Server thread/DEBUG]: #12 src/pocketmine/network/mcpe/protocol/BatchPacket(114): pocketmine\network\mcpe\PlayerNetworkSessionAdapter->handleDataPacket(pocketmine\network\mcpe\protocol\BookEditPacket object)
2018-11-23 [21:23:38] [Server thread/DEBUG]: #13 src/pocketmine/network/mcpe/PlayerNetworkSessionAdapter(96): pocketmine\network\mcpe\protocol\BatchPacket->handle(pocketmine\network\mcpe\PlayerNetworkSessionAdapter object)
2018-11-23 [21:23:38] [Server thread/DEBUG]: #14 src/pocketmine/Player(3060): pocketmine\network\mcpe\PlayerNetworkSessionAdapter->handleDataPacket(pocketmine\network\mcpe\protocol\BatchPacket object)
2018-11-23 [21:23:38] [Server thread/DEBUG]: #15 src/pocketmine/network/mcpe/RakLibInterface(161): pocketmine\Player->handleDataPacket(pocketmine\network\mcpe\protocol\BatchPacket object)
2018-11-23 [21:23:38] [Server thread/DEBUG]: #16 vendor/pocketmine/raklib/src/server/ServerHandler(98): pocketmine\network\mcpe\RakLibInterface->handleEncapsulated(string 8X.1XX.1XX.1XX 35019, raklib\protocol\EncapsulatedPacket object, integer 0)
2018-11-23 [21:23:38] [Server thread/DEBUG]: #17 src/pocketmine/network/mcpe/RakLibInterface(102): raklib\server\ServerHandler->handlePacket()
2018-11-23 [21:23:38] [Server thread/DEBUG]: #18 src/pocketmine/network/Network(94): pocketmine\network\mcpe\RakLibInterface->process()
2018-11-23 [21:23:38] [Server thread/DEBUG]: #19 src/pocketmine/network/mcpe/RakLibInterface(92): pocketmine\network\Network->processInterface(pocketmine\network\mcpe\RakLibInterface object)
2018-11-23 [21:23:38] [Server thread/DEBUG]: #20 vendor/pocketmine/snooze/src/SleeperHandler(120): pocketmine\network\mcpe\RakLibInterface->pocketmine\network\mcpe\{closure}()
2018-11-23 [21:23:38] [Server thread/DEBUG]: #21 vendor/pocketmine/snooze/src/SleeperHandler(82): pocketmine\snooze\SleeperHandler->processNotifications()
2018-11-23 [21:23:38] [Server thread/DEBUG]: #22 src/pocketmine/Server(2268): pocketmine\snooze\SleeperHandler->sleepUntil(double 1543004618.4259)
2018-11-23 [21:23:38] [Server thread/DEBUG]: #23 src/pocketmine/Server(2135): pocketmine\Server->tickProcessor()
2018-11-23 [21:23:38] [Server thread/DEBUG]: #24 src/pocketmine/Server(1701): pocketmine\Server->start()
2018-11-23 [21:23:38] [Server thread/DEBUG]: #25 src/pocketmine/PocketMine(249): pocketmine\Server->__construct(BaseClassLoader object, pocketmine\utils\MainLogger object, string /home/myserver/, string /home/myserver/plugins/)
2018-11-23 [21:23:38] [Server thread/DEBUG]: #26 /home/myserver/PocketMine-MP.phar(1): require(string phar:///home/myserver/PocketMine-MP.phar/src/pocketmine/PocketMine.php)
2018-11-23 [21:23:38] [RakLibServer thread/NOTICE]: Blocked 8X.1XX.1XX.1XX for 5 seconds

2018-11-23 [21:26:06] [Server thread/CRITICAL]: InvalidArgumentException: "NBT encoded length must be < 32768, got 33310 bytes" (EXCEPTION) in "src/pocketmine/network/mcpe/NetworkBinaryStream" at line 114
2018-11-23 [21:26:06] [Server thread/DEBUG]: #0 src/pocketmine/network/mcpe/protocol/InventorySlotPacket(50): pocketmine\network\mcpe\NetworkBinaryStream->putSlot(pocketmine\item\WritableBook object)
2018-11-23 [21:26:06] [Server thread/DEBUG]: #1 src/pocketmine/network/mcpe/protocol/DataPacket(89): pocketmine\network\mcpe\protocol\InventorySlotPacket->encodePayload()
2018-11-23 [21:26:06] [Server thread/DEBUG]: #2 src/pocketmine/network/mcpe/RakLibInterface(226): pocketmine\network\mcpe\protocol\DataPacket->encode()
2018-11-23 [21:26:06] [Server thread/DEBUG]: #3 src/pocketmine/Player(3114): pocketmine\network\mcpe\RakLibInterface->putPacket(pocketmine\Player object, pocketmine\network\mcpe\protocol\InventorySlotPacket object, boolean , boolean )
2018-11-23 [21:26:06] [Server thread/DEBUG]: #4 src/pocketmine/Player(3134): pocketmine\Player->sendDataPacket(pocketmine\network\mcpe\protocol\InventorySlotPacket object, boolean , boolean )
2018-11-23 [21:26:06] [Server thread/DEBUG]: #5 src/pocketmine/inventory/BaseInventory(470): pocketmine\Player->dataPacket(pocketmine\network\mcpe\protocol\InventorySlotPacket object)
2018-11-23 [21:26:06] [Server thread/DEBUG]: #6 src/pocketmine/inventory/BaseInventory(425): pocketmine\inventory\BaseInventory->sendSlot(integer 4, array Array())
2018-11-23 [21:26:06] [Server thread/DEBUG]: #7 src/pocketmine/inventory/BaseInventory(176): pocketmine\inventory\BaseInventory->onSlotChange(integer 4, pocketmine\item\ItemBlock object, boolean 1)
2018-11-23 [21:26:06] [Server thread/DEBUG]: #8 src/pocketmine/inventory/BaseInventory(316): pocketmine\inventory\BaseInventory->setItem(integer 4, pocketmine\item\WritableBook object)
2018-11-23 [21:26:06] [Server thread/DEBUG]: #9 src/pocketmine/entity/object/ItemEntity(234): pocketmine\inventory\BaseInventory->addItem(pocketmine\item\WritableBook object)
2018-11-23 [21:26:06] [Server thread/DEBUG]: #10 src/pocketmine/Player(1518): pocketmine\entity\object\ItemEntity->onCollideWithPlayer(pocketmine\Player object)
2018-11-23 [21:26:06] [Server thread/DEBUG]: #11 src/pocketmine/Player(1718): pocketmine\Player->checkNearEntities()
2018-11-23 [21:26:06] [Server thread/DEBUG]: #12 src/pocketmine/level/Level(742): pocketmine\Player->onUpdate(integer 1061142)
2018-11-23 [21:26:06] [Server thread/DEBUG]: #13 src/pocketmine/Server(2370): pocketmine\level\Level->doTick(integer 1061142)
2018-11-23 [21:26:06] [Server thread/DEBUG]: #14 src/pocketmine/Server(2519): pocketmine\Server->checkTickUpdates(integer 1061142, double 1543004766.5907)
2018-11-23 [21:26:06] [Server thread/DEBUG]: #15 src/pocketmine/Server(2265): pocketmine\Server->tick()
2018-11-23 [21:26:06] [Server thread/DEBUG]: #16 src/pocketmine/Server(2135): pocketmine\Server->tickProcessor()
2018-11-23 [21:26:06] [Server thread/DEBUG]: #17 src/pocketmine/Server(1701): pocketmine\Server->start()
2018-11-23 [21:26:06] [Server thread/DEBUG]: #18 src/pocketmine/PocketMine(249): pocketmine\Server->__construct(BaseClassLoader object, pocketmine\utils\MainLogger object, string /home/myserver/, string /home/myserver/plugins/)
2018-11-23 [21:26:06] [Server thread/DEBUG]: #19 /home/myserver/PocketMine-MP.phar(1): require(string phar:///home/myserver/PocketMine-MP.phar/src/pocketmine/PocketMine.php)
2018-11-23 [21:26:06] [Server thread/EMERGENCY]: An unrecoverable error has occurred and the server has crashed. Creating a crash dump
2018-11-23 [21:26:06] [Server thread/EMERGENCY]: Please upload the "/home/myserver/crashdumps/Fri_Nov_23-21.26.06-CET_2018.log" file to the Crash Archive and submit the link to the Bug Reporting page. Give as much info as you can.
PocketMine-MP Crash Dump Fri Nov 23 21:26:06 CET 2018

Error: NBT encoded length must be < 32768, got 33310 bytes
File: src/pocketmine/network/mcpe/NetworkBinaryStream
Line: 114
Type: InvalidArgumentException

Code:
[105]       }
[106] 
[107]       $this->putVarInt($item->getId());
[108]       $auxValue = (($item->getDamage() & 0x7fff) << 8) | $item->getCount();
[109]       $this->putVarInt($auxValue);
[110] 
[111]       $nbt = $item->getCompoundTag();
[112]       $nbtLen = \strlen($nbt);
[113]       if($nbtLen > 32767){
[114]           throw new \InvalidArgumentException("NBT encoded length must be < 32768, got $nbtLen bytes");
[115]       }
[116] 
[117]       ($this->buffer .= (\pack("v", $nbtLen)));
[118]       ($this->buffer .= $nbt);
[119] 
[120]       $this->putVarInt(0); //CanPlaceOn entry count (TODO)
[121]       $this->putVarInt(0); //CanDestroy entry count (TODO)
[122]   }
[123] 
[124]   /**

Backtrace:
#0 src/pocketmine/network/mcpe/protocol/InventorySlotPacket(50): pocketmine\network\mcpe\NetworkBinaryStream->putSlot(pocketmine\item\WritableBook object)
#1 src/pocketmine/network/mcpe/protocol/DataPacket(89): pocketmine\network\mcpe\protocol\InventorySlotPacket->encodePayload()
#2 src/pocketmine/network/mcpe/RakLibInterface(226): pocketmine\network\mcpe\protocol\DataPacket->encode()
#3 src/pocketmine/Player(3114): pocketmine\network\mcpe\RakLibInterface->putPacket(pocketmine\Player object, pocketmine\network\mcpe\protocol\InventorySlotPacket object, boolean , boolean )
#4 src/pocketmine/Player(3134): pocketmine\Player->sendDataPacket(pocketmine\network\mcpe\protocol\InventorySlotPacket object, boolean , boolean )
#5 src/pocketmine/inventory/BaseInventory(470): pocketmine\Player->dataPacket(pocketmine\network\mcpe\protocol\InventorySlotPacket object)
#6 src/pocketmine/inventory/BaseInventory(425): pocketmine\inventory\BaseInventory->sendSlot(integer 4, array Array())
#7 src/pocketmine/inventory/BaseInventory(176): pocketmine\inventory\BaseInventory->onSlotChange(integer 4, pocketmine\item\ItemBlock object, boolean 1)
#8 src/pocketmine/inventory/BaseInventory(316): pocketmine\inventory\BaseInventory->setItem(integer 4, pocketmine\item\WritableBook object)
#9 src/pocketmine/entity/object/ItemEntity(234): pocketmine\inventory\BaseInventory->addItem(pocketmine\item\WritableBook object)
#10 src/pocketmine/Player(1518): pocketmine\entity\object\ItemEntity->onCollideWithPlayer(pocketmine\Player object)
#11 src/pocketmine/Player(1718): pocketmine\Player->checkNearEntities()
#12 src/pocketmine/level/Level(742): pocketmine\Player->onUpdate(integer 1061142)
#13 src/pocketmine/Server(2370): pocketmine\level\Level->doTick(integer 1061142)
#14 src/pocketmine/Server(2519): pocketmine\Server->checkTickUpdates(integer 1061142, double 1543004766.5907)
#15 src/pocketmine/Server(2265): pocketmine\Server->tick()
#16 src/pocketmine/Server(2135): pocketmine\Server->tickProcessor()
#17 src/pocketmine/Server(1701): pocketmine\Server->start()
#18 src/pocketmine/PocketMine(249): pocketmine\Server->__construct(BaseClassLoader object, pocketmine\utils\MainLogger object, string /home/gsp_1485/g3.hmserv.eu-19144/, string /home/gsp_1485/g3.hmserv.eu-19144/plugins/)
#19 /home/gsp_1485/g3.hmserv.eu-19144/PocketMine-MP.phar(1): require(string phar:///home/gsp_1485/g3.hmserv.eu-19144/PocketMine-MP.phar/src/pocketmine/PocketMine.php)

PocketMine-MP version: 3.3.2 [Protocol 291]
Git commit: 200de3fe8460d180a4fd9f5a0e0768bd3085fd50
uname -a: Linux g1 4.5.0-0.bpo.2-amd64 #1 SMP Debian 4.5.4-1~bpo8+1 (2016-05-13) x86_64
PHP Version: 7.2.9
Zend version: 3.2.0
OS : Linux, linux
teracube commented 5 years ago

second crash today same player caused the crash

2018-11-23 [22:11:10] [Server thread/INFO]: PlayerBuble412[/8X.1XX.1XX.1XX:50402] logged in with entity id 2745 at (lobby, 0, 6, 0)
2018-11-23 [22:11:10] [Server thread/CRITICAL]: InvalidArgumentException: "NBT encoded length must be < 32768, got 33310 bytes" (EXCEPTION) in "src/pocketmine/network/mcpe/NetworkBinaryStream" at line 114
2018-11-23 [22:11:10] [Server thread/DEBUG]: #0 src/pocketmine/network/mcpe/protocol/InventoryContentPacket(51): pocketmine\network\mcpe\NetworkBinaryStream->putSlot(pocketmine\item\WritableBook object)
2018-11-23 [22:11:10] [Server thread/DEBUG]: #1 src/pocketmine/network/mcpe/protocol/DataPacket(89): pocketmine\network\mcpe\protocol\InventoryContentPacket->encodePayload()
2018-11-23 [22:11:10] [Server thread/DEBUG]: #2 src/pocketmine/network/mcpe/RakLibInterface(226): pocketmine\network\mcpe\protocol\DataPacket->encode()
2018-11-23 [22:11:10] [Server thread/DEBUG]: #3 src/pocketmine/Player(3114): pocketmine\network\mcpe\RakLibInterface->putPacket(pocketmine\Player object, pocketmine\network\mcpe\protocol\InventoryContentPacket object, boolean , boolean )
2018-11-23 [22:11:10] [Server thread/DEBUG]: #4 src/pocketmine/Player(3134): pocketmine\Player->sendDataPacket(pocketmine\network\mcpe\protocol\InventoryContentPacket object, boolean , boolean )
2018-11-23 [22:11:10] [Server thread/DEBUG]: #5 src/pocketmine/inventory/BaseInventory(447): pocketmine\Player->dataPacket(pocketmine\network\mcpe\protocol\InventoryContentPacket object)
2018-11-23 [22:11:10] [Server thread/DEBUG]: #6 src/pocketmine/Player(3874): pocketmine\inventory\BaseInventory->sendContents(array Array())
2018-11-23 [22:11:10] [Server thread/DEBUG]: #7 src/pocketmine/Player(2152): pocketmine\Player->sendAllInventories()
2018-11-23 [22:11:10] [Server thread/DEBUG]: #8 src/pocketmine/Player(2067): pocketmine\Player->completeLoginSequence()
2018-11-23 [22:11:10] [Server thread/DEBUG]: #9 src/pocketmine/network/mcpe/PlayerNetworkSessionAdapter(112): pocketmine\Player->handleResourcePackClientResponse(pocketmine\network\mcpe\protocol\ResourcePackClientResponsePacket object)
2018-11-23 [22:11:10] [Server thread/DEBUG]: #10 src/pocketmine/network/mcpe/protocol/ResourcePackClientResponsePacket(61): pocketmine\network\mcpe\PlayerNetworkSessionAdapter->handleResourcePackClientResponse(pocketmine\network\mcpe\protocol\ResourcePackClientResponsePacket object)
2018-11-23 [22:11:10] [Server thread/DEBUG]: #11 src/pocketmine/network/mcpe/PlayerNetworkSessionAdapter(96): pocketmine\network\mcpe\protocol\ResourcePackClientResponsePacket->handle(pocketmine\network\mcpe\PlayerNetworkSessionAdapter object)
2018-11-23 [22:11:10] [Server thread/DEBUG]: #12 src/pocketmine/network/mcpe/protocol/BatchPacket(114): pocketmine\network\mcpe\PlayerNetworkSessionAdapter->handleDataPacket(pocketmine\network\mcpe\protocol\ResourcePackClientResponsePacket object)
2018-11-23 [22:11:10] [Server thread/DEBUG]: #13 src/pocketmine/network/mcpe/PlayerNetworkSessionAdapter(96): pocketmine\network\mcpe\protocol\BatchPacket->handle(pocketmine\network\mcpe\PlayerNetworkSessionAdapter object)
2018-11-23 [22:11:10] [Server thread/DEBUG]: #14 src/pocketmine/Player(3060): pocketmine\network\mcpe\PlayerNetworkSessionAdapter->handleDataPacket(pocketmine\network\mcpe\protocol\BatchPacket object)
2018-11-23 [22:11:10] [Server thread/DEBUG]: #15 src/pocketmine/network/mcpe/RakLibInterface(161): pocketmine\Player->handleDataPacket(pocketmine\network\mcpe\protocol\BatchPacket object)
2018-11-23 [22:11:10] [Server thread/DEBUG]: #16 vendor/pocketmine/raklib/src/server/ServerHandler(98): pocketmine\network\mcpe\RakLibInterface->handleEncapsulated(string 8X.1XX.1XX.1XX 50402, raklib\protocol\EncapsulatedPacket object, integer 0)
2018-11-23 [22:11:10] [Server thread/DEBUG]: #17 src/pocketmine/network/mcpe/RakLibInterface(102): raklib\server\ServerHandler->handlePacket()
2018-11-23 [22:11:10] [Server thread/DEBUG]: #18 src/pocketmine/network/Network(94): pocketmine\network\mcpe\RakLibInterface->process()
2018-11-23 [22:11:10] [Server thread/DEBUG]: #19 src/pocketmine/network/mcpe/RakLibInterface(92): pocketmine\network\Network->processInterface(pocketmine\network\mcpe\RakLibInterface object)
2018-11-23 [22:11:10] [Server thread/DEBUG]: #20 vendor/pocketmine/snooze/src/SleeperHandler(120): pocketmine\network\mcpe\RakLibInterface->pocketmine\network\mcpe\{closure}()
2018-11-23 [22:11:10] [Server thread/DEBUG]: #21 vendor/pocketmine/snooze/src/SleeperHandler(82): pocketmine\snooze\SleeperHandler->processNotifications()
2018-11-23 [22:11:10] [Server thread/DEBUG]: #22 src/pocketmine/Server(2268): pocketmine\snooze\SleeperHandler->sleepUntil(double 1543007470.2465)
2018-11-23 [22:11:10] [Server thread/DEBUG]: #23 src/pocketmine/Server(2135): pocketmine\Server->tickProcessor()
2018-11-23 [22:11:10] [Server thread/DEBUG]: #24 src/pocketmine/Server(1701): pocketmine\Server->start()
2018-11-23 [22:11:10] [Server thread/DEBUG]: #25 src/pocketmine/PocketMine(249): pocketmine\Server->__construct(BaseClassLoader object, pocketmine\utils\MainLogger object, string /home/myserver/, string /home/myserver/plugins/)
2018-11-23 [22:11:10] [Server thread/DEBUG]: #26 /home/myserver/PocketMine-MP.phar(1): require(string phar:///home/myserver/PocketMine-MP.phar/src/pocketmine/PocketMine.php)
2018-11-23 [22:11:10] [RakLibServer thread/NOTICE]: Blocked 8X.1XX.1XX.1XX for 5 seconds

2018-11-23 [22:11:20] [Server thread/CRITICAL]: Could not pass event 'pocketmine\event\player\PlayerJoinEvent' to 'FactionsPro v1.3.13': Argument 1 passed to _64FF00\PureChat\PureChat::getNametag() must be an instance of pocketmine\Player, null given, called in phar:///home/myserver/plugins/FactionsPro_dev-39.phar/src/FactionsPro/FactionMain.php on line 465 on FactionsPro\FactionListener
2018-11-23 [22:11:20] [Server thread/CRITICAL]: TypeError: "Argument 1 passed to _64FF00\PureChat\PureChat::getNametag() must be an instance of pocketmine\Player, null given, called in phar:///home/myserver/plugins/FactionsPro_dev-39.phar/src/FactionsPro/FactionMain.php on line 465" (EXCEPTION) in "PureChat_dev-19.phar/src/_64FF00/PureChat/PureChat" at line 505
2018-11-23 [22:11:20] [Server thread/DEBUG]: #0 FactionsPro_dev-39.phar/src/FactionsPro/FactionMain(465): _64FF00\PureChat\PureChat->getNametag(NULL , NULL )
2018-11-23 [22:11:20] [Server thread/DEBUG]: #1 FactionsPro_dev-39.phar/src/FactionsPro/FactionListener(160): FactionsPro\FactionMain->updateTag(string PlayerBuble412)
2018-11-23 [22:11:20] [Server thread/DEBUG]: #2 src/pocketmine/plugin/MethodEventExecutor(38): FactionsPro\FactionListener->onPlayerJoin(pocketmine\event\player\PlayerJoinEvent object)
2018-11-23 [22:11:20] [Server thread/DEBUG]: #3 src/pocketmine/plugin/RegisteredListener(98): pocketmine\plugin\MethodEventExecutor->execute(FactionsPro\FactionListener object, pocketmine\event\player\PlayerJoinEvent object)
2018-11-23 [22:11:20] [Server thread/DEBUG]: #4 src/pocketmine/plugin/PluginManager(704): pocketmine\plugin\RegisteredListener->callEvent(pocketmine\event\player\PlayerJoinEvent object)
2018-11-23 [22:11:20] [Server thread/DEBUG]: #5 src/pocketmine/Player(1037): pocketmine\plugin\PluginManager->callEvent(pocketmine\event\player\PlayerJoinEvent object)
2018-11-23 [22:11:20] [Server thread/DEBUG]: #6 src/pocketmine/Player(985): pocketmine\Player->doFirstSpawn()
2018-11-23 [22:11:20] [Server thread/DEBUG]: #7 src/pocketmine/level/Level(2464): pocketmine\Player->sendChunk(integer -2, integer 3, pocketmine\network\mcpe\protocol\BatchPacket object)
2018-11-23 [22:11:20] [Server thread/DEBUG]: #8 src/pocketmine/level/Level(2488): pocketmine\level\Level->sendChunkFromCache(integer -2, integer 3)
2018-11-23 [22:11:20] [Server thread/DEBUG]: #9 src/pocketmine/level/Level(792): pocketmine\level\Level->processChunkRequest()
2018-11-23 [22:11:20] [Server thread/DEBUG]: #10 src/pocketmine/Server(2370): pocketmine\level\Level->doTick(integer 24328)
2018-11-23 [22:11:20] [Server thread/DEBUG]: #11 src/pocketmine/Server(2519): pocketmine\Server->checkTickUpdates(integer 24328, double 1543007480.0465)
2018-11-23 [22:11:20] [Server thread/DEBUG]: #12 src/pocketmine/Server(2265): pocketmine\Server->tick()
2018-11-23 [22:11:20] [Server thread/DEBUG]: #13 src/pocketmine/Server(2135): pocketmine\Server->tickProcessor()
2018-11-23 [22:11:20] [Server thread/DEBUG]: #14 src/pocketmine/Server(1701): pocketmine\Server->start()
2018-11-23 [22:11:20] [Server thread/DEBUG]: #15 src/pocketmine/PocketMine(249): pocketmine\Server->__construct(BaseClassLoader object, pocketmine\utils\MainLogger object, string /home/myserver/, string /home/myserver/plugins/)
2018-11-23 [22:11:20] [Server thread/DEBUG]: #16 /home/myserver/PocketMine-MP.phar(1): require(string phar:///home/myserver/PocketMine-MP.phar/src/pocketmine/PocketMine.php)

2018-11-23 [22:11:20] [Server thread/INFO]: [VPNGuard] Player PlayerBuble412 has connected with the IP: 8X.1XX.1XX.1XX
2018-11-23 [22:11:20] [Server thread/INFO]: [22:11:20] PlayerBuble412 [+]

2018-11-23 [22:12:25] [Server thread/CRITICAL]: Could not execute completion of asynchronous task ChunkRequestTask: NBT encoded length must be < 32768, got 33310 bytes
2018-11-23 [22:12:25] [Server thread/CRITICAL]: InvalidArgumentException: "NBT encoded length must be < 32768, got 33310 bytes" (EXCEPTION) in "src/pocketmine/network/mcpe/NetworkBinaryStream" at line 114
2018-11-23 [22:12:25] [Server thread/DEBUG]: #0 src/pocketmine/network/mcpe/protocol/AddItemEntityPacket(63): pocketmine\network\mcpe\NetworkBinaryStream->putSlot(pocketmine\item\WritableBook object)
2018-11-23 [22:12:25] [Server thread/DEBUG]: #1 src/pocketmine/network/mcpe/protocol/DataPacket(89): pocketmine\network\mcpe\protocol\AddItemEntityPacket->encodePayload()
2018-11-23 [22:12:25] [Server thread/DEBUG]: #2 src/pocketmine/network/mcpe/RakLibInterface(226): pocketmine\network\mcpe\protocol\DataPacket->encode()
2018-11-23 [22:12:25] [Server thread/DEBUG]: #3 src/pocketmine/Player(3114): pocketmine\network\mcpe\RakLibInterface->putPacket(pocketmine\Player object, pocketmine\network\mcpe\protocol\AddItemEntityPacket object, boolean , boolean )
2018-11-23 [22:12:25] [Server thread/DEBUG]: #4 src/pocketmine/Player(3134): pocketmine\Player->sendDataPacket(pocketmine\network\mcpe\protocol\AddItemEntityPacket object, boolean , boolean )
2018-11-23 [22:12:25] [Server thread/DEBUG]: #5 src/pocketmine/entity/object/ItemEntity(200): pocketmine\Player->dataPacket(pocketmine\network\mcpe\protocol\AddItemEntityPacket object)
2018-11-23 [22:12:25] [Server thread/DEBUG]: #6 src/pocketmine/entity/Entity(1959): pocketmine\entity\object\ItemEntity->sendSpawnPacket(pocketmine\Player object)
2018-11-23 [22:12:25] [Server thread/DEBUG]: #7 src/pocketmine/Player(979): pocketmine\entity\Entity->spawnTo(pocketmine\Player object)
2018-11-23 [22:12:25] [Server thread/DEBUG]: #8 src/pocketmine/level/Level(2464): pocketmine\Player->sendChunk(integer 30, integer 261, pocketmine\network\mcpe\protocol\BatchPacket object)
2018-11-23 [22:12:25] [Server thread/DEBUG]: #9 src/pocketmine/level/Level(2516): pocketmine\level\Level->sendChunkFromCache(integer 30, integer 261)
2018-11-23 [22:12:25] [Server thread/DEBUG]: #10 src/pocketmine/level/format/io/ChunkRequestTask(73): pocketmine\level\Level->chunkRequestCallback(integer 30, integer 261, pocketmine\network\mcpe\protocol\BatchPacket object)
2018-11-23 [22:12:25] [Server thread/DEBUG]: #11 src/pocketmine/scheduler/AsyncPool(306): pocketmine\level\format\io\ChunkRequestTask->onCompletion(pocketmine\Server object)
2018-11-23 [22:12:25] [Server thread/DEBUG]: #12 src/pocketmine/Server(2516): pocketmine\scheduler\AsyncPool->collectTasks()
2018-11-23 [22:12:25] [Server thread/DEBUG]: #13 src/pocketmine/Server(2265): pocketmine\Server->tick()
2018-11-23 [22:12:25] [Server thread/DEBUG]: #14 src/pocketmine/Server(2135): pocketmine\Server->tickProcessor()
2018-11-23 [22:12:25] [Server thread/DEBUG]: #15 src/pocketmine/Server(1701): pocketmine\Server->start()
2018-11-23 [22:12:25] [Server thread/DEBUG]: #16 src/pocketmine/PocketMine(249): pocketmine\Server->__construct(BaseClassLoader object, pocketmine\utils\MainLogger object, string /home/myserver/, string /home/myserver/plugins/)
2018-11-23 [22:12:25] [Server thread/DEBUG]: #17 /home/myserver/PocketMine-MP.phar(1): require(string phar:///home/myserver/PocketMine-MP.phar/src/pocketmine/PocketMine.php)

2018-11-23 [22:14:43] [Server thread/CRITICAL]: InvalidArgumentException: "NBT encoded length must be < 32768, got 33310 bytes" (EXCEPTION) in "src/pocketmine/network/mcpe/NetworkBinaryStream" at line 114
2018-11-23 [22:14:43] [Server thread/DEBUG]: #0 src/pocketmine/network/mcpe/protocol/InventorySlotPacket(50): pocketmine\network\mcpe\NetworkBinaryStream->putSlot(pocketmine\item\WritableBook object)
2018-11-23 [22:14:43] [Server thread/DEBUG]: #1 src/pocketmine/network/mcpe/protocol/DataPacket(89): pocketmine\network\mcpe\protocol\InventorySlotPacket->encodePayload()
2018-11-23 [22:14:43] [Server thread/DEBUG]: #2 src/pocketmine/network/mcpe/RakLibInterface(226): pocketmine\network\mcpe\protocol\DataPacket->encode()
2018-11-23 [22:14:43] [Server thread/DEBUG]: #3 src/pocketmine/Player(3114): pocketmine\network\mcpe\RakLibInterface->putPacket(pocketmine\Player object, pocketmine\network\mcpe\protocol\InventorySlotPacket object, boolean , boolean )
2018-11-23 [22:14:43] [Server thread/DEBUG]: #4 src/pocketmine/Player(3134): pocketmine\Player->sendDataPacket(pocketmine\network\mcpe\protocol\InventorySlotPacket object, boolean , boolean )
2018-11-23 [22:14:43] [Server thread/DEBUG]: #5 src/pocketmine/inventory/BaseInventory(470): pocketmine\Player->dataPacket(pocketmine\network\mcpe\protocol\InventorySlotPacket object)
2018-11-23 [22:14:43] [Server thread/DEBUG]: #6 src/pocketmine/inventory/BaseInventory(425): pocketmine\inventory\BaseInventory->sendSlot(integer 5, array Array())
2018-11-23 [22:14:43] [Server thread/DEBUG]: #7 src/pocketmine/inventory/BaseInventory(176): pocketmine\inventory\BaseInventory->onSlotChange(integer 5, pocketmine\item\ItemBlock object, boolean 1)
2018-11-23 [22:14:43] [Server thread/DEBUG]: #8 src/pocketmine/inventory/BaseInventory(316): pocketmine\inventory\BaseInventory->setItem(integer 5, pocketmine\item\WritableBook object)
2018-11-23 [22:14:43] [Server thread/DEBUG]: #9 src/pocketmine/entity/object/ItemEntity(234): pocketmine\inventory\BaseInventory->addItem(pocketmine\item\WritableBook object)
2018-11-23 [22:14:43] [Server thread/DEBUG]: #10 src/pocketmine/Player(1518): pocketmine\entity\object\ItemEntity->onCollideWithPlayer(pocketmine\Player object)
2018-11-23 [22:14:43] [Server thread/DEBUG]: #11 src/pocketmine/Player(1718): pocketmine\Player->checkNearEntities()
2018-11-23 [22:14:43] [Server thread/DEBUG]: #12 src/pocketmine/level/Level(742): pocketmine\Player->onUpdate(integer 28388)
2018-11-23 [22:14:43] [Server thread/DEBUG]: #13 src/pocketmine/Server(2370): pocketmine\level\Level->doTick(integer 28388)
2018-11-23 [22:14:43] [Server thread/DEBUG]: #14 src/pocketmine/Server(2519): pocketmine\Server->checkTickUpdates(integer 28388, double 1543007683.0463)
2018-11-23 [22:14:43] [Server thread/DEBUG]: #15 src/pocketmine/Server(2265): pocketmine\Server->tick()
2018-11-23 [22:14:43] [Server thread/DEBUG]: #16 src/pocketmine/Server(2135): pocketmine\Server->tickProcessor()
2018-11-23 [22:14:43] [Server thread/DEBUG]: #17 src/pocketmine/Server(1701): pocketmine\Server->start()
2018-11-23 [22:14:43] [Server thread/DEBUG]: #18 src/pocketmine/PocketMine(249): pocketmine\Server->__construct(BaseClassLoader object, pocketmine\utils\MainLogger object, string /home/myserver/, string /home/myserver/plugins/)
2018-11-23 [22:14:43] [Server thread/DEBUG]: #19 /home/myserver/PocketMine-MP.phar(1): require(string phar:///home/myserver/PocketMine-MP.phar/src/pocketmine/PocketMine.php)
2018-11-23 [22:14:43] [Server thread/EMERGENCY]: An unrecoverable error has occurred and the server has crashed. Creating a crash dump
2018-11-23 [22:14:43] [Server thread/EMERGENCY]: Please upload the "/home/myserver/crashdumps/Fri_Nov_23-22.14.43-CET_2018.log" file to the Crash Archive and submit the link to the Bug Reporting page. Give as much info as you can.
PocketMine-MP Crash Dump Fri Nov 23 22:14:43 CET 2018

Error: NBT encoded length must be < 32768, got 33310 bytes
File: src/pocketmine/network/mcpe/NetworkBinaryStream
Line: 114
Type: InvalidArgumentException

Code:
[105]       }
[106] 
[107]       $this->putVarInt($item->getId());
[108]       $auxValue = (($item->getDamage() & 0x7fff) << 8) | $item->getCount();
[109]       $this->putVarInt($auxValue);
[110] 
[111]       $nbt = $item->getCompoundTag();
[112]       $nbtLen = \strlen($nbt);
[113]       if($nbtLen > 32767){
[114]           throw new \InvalidArgumentException("NBT encoded length must be < 32768, got $nbtLen bytes");
[115]       }
[116] 
[117]       ($this->buffer .= (\pack("v", $nbtLen)));
[118]       ($this->buffer .= $nbt);
[119] 
[120]       $this->putVarInt(0); //CanPlaceOn entry count (TODO)
[121]       $this->putVarInt(0); //CanDestroy entry count (TODO)
[122]   }
[123] 
[124]   /**

Backtrace:
#0 src/pocketmine/network/mcpe/protocol/InventorySlotPacket(50): pocketmine\network\mcpe\NetworkBinaryStream->putSlot(pocketmine\item\WritableBook object)
#1 src/pocketmine/network/mcpe/protocol/DataPacket(89): pocketmine\network\mcpe\protocol\InventorySlotPacket->encodePayload()
#2 src/pocketmine/network/mcpe/RakLibInterface(226): pocketmine\network\mcpe\protocol\DataPacket->encode()
#3 src/pocketmine/Player(3114): pocketmine\network\mcpe\RakLibInterface->putPacket(pocketmine\Player object, pocketmine\network\mcpe\protocol\InventorySlotPacket object, boolean , boolean )
#4 src/pocketmine/Player(3134): pocketmine\Player->sendDataPacket(pocketmine\network\mcpe\protocol\InventorySlotPacket object, boolean , boolean )
#5 src/pocketmine/inventory/BaseInventory(470): pocketmine\Player->dataPacket(pocketmine\network\mcpe\protocol\InventorySlotPacket object)
#6 src/pocketmine/inventory/BaseInventory(425): pocketmine\inventory\BaseInventory->sendSlot(integer 5, array Array())
#7 src/pocketmine/inventory/BaseInventory(176): pocketmine\inventory\BaseInventory->onSlotChange(integer 5, pocketmine\item\ItemBlock object, boolean 1)
#8 src/pocketmine/inventory/BaseInventory(316): pocketmine\inventory\BaseInventory->setItem(integer 5, pocketmine\item\WritableBook object)
#9 src/pocketmine/entity/object/ItemEntity(234): pocketmine\inventory\BaseInventory->addItem(pocketmine\item\WritableBook object)
#10 src/pocketmine/Player(1518): pocketmine\entity\object\ItemEntity->onCollideWithPlayer(pocketmine\Player object)
#11 src/pocketmine/Player(1718): pocketmine\Player->checkNearEntities()
#12 src/pocketmine/level/Level(742): pocketmine\Player->onUpdate(integer 28388)
#13 src/pocketmine/Server(2370): pocketmine\level\Level->doTick(integer 28388)
#14 src/pocketmine/Server(2519): pocketmine\Server->checkTickUpdates(integer 28388, double 1543007683.0463)
#15 src/pocketmine/Server(2265): pocketmine\Server->tick()
#16 src/pocketmine/Server(2135): pocketmine\Server->tickProcessor()
#17 src/pocketmine/Server(1701): pocketmine\Server->start()
#18 src/pocketmine/PocketMine(249): pocketmine\Server->__construct(BaseClassLoader object, pocketmine\utils\MainLogger object, string /home/gsp_1485/g3.hmserv.eu-19144/, string /home/gsp_1485/g3.hmserv.eu-19144/plugins/)
#19 /home/gsp_1485/g3.hmserv.eu-19144/PocketMine-MP.phar(1): require(string phar:///home/gsp_1485/g3.hmserv.eu-19144/PocketMine-MP.phar/src/pocketmine/PocketMine.php)

PocketMine-MP version: 3.3.2 [Protocol 291]
Git commit: 200de3fe8460d180a4fd9f5a0e0768bd3085fd50
uname -a: Linux g1 4.5.0-0.bpo.2-amd64 #1 SMP Debian 4.5.4-1~bpo8+1 (2016-05-13) x86_64
PHP Version: 7.2.9
Zend version: 3.2.0
OS : Linux, linux
teracube commented 5 years ago

@CortexPE

see attached file of player.dat who made crash my server what is the problem? thanks

player.dat.zip

CortexPE commented 5 years ago

Check this out maybe?

https://www.youtube.com/watch?v=_7f6DojmoWE

I haven't checked the file you've sent but I'm suspecting that it's a similar exploit

CortexPE commented 5 years ago

Checked the crashdumps... it is a bookbanning technique

apparently someone tried it, it crashed pocketmine as a whole.

even without teaspoon, this exploit will work as pmmp has writable books built-in.

dktapps commented 5 years ago

It's a bug in the protocol that's safeguarded against on the PM side, since it's easier to figure out why PM is throwing a fit than to debug why a client is inexplicably crashing.

teracube commented 5 years ago

@CortexPE @dktapps

thanks you for these informations I related this problem in the forum too with another player.dat example sorry for the duplicate

https://forums.pmmp.io/threads/crash-server-networkbinarystream-nbt-encoded-length-must-be-32768-got-nbtlen-bytes.7007/

dktapps commented 5 years ago

FWIW the protocol bug underlying this problem is fixed in 1.9 beta (according to the changelog). It'll probably take a couple of months before this gets to mainstream production though.

teracube commented 5 years ago

My server is open since May 2017, and I never had this problem before last week and this week 2 crash in 2 days.

dktapps commented 5 years ago

that's because the check was added recently. Before that a client joining with this problem would just crash without warning.

teracube commented 5 years ago

@dktapps is it possible for you to add a temporary patch at PMMP 1.7.0 to prevent this crash it would be great thanks

dktapps commented 5 years ago

Not really. As I already said, this is a safeguard against a client crash. Remove the broken data.

teracube commented 5 years ago

thanks