supercrafter333 / BetterBan

A plugin for PocketMine-MP to simply ban players for a certain period of time.
Apache License 2.0
16 stars 8 forks source link

[BUG:] Crash MySQLBanList #43

Open UnknownNull opened 9 months ago

UnknownNull commented 9 months ago

Bug: Crash

Informations

BetterBan Version: 4.2.2 Server-OS: Windows 2012 r2 PHP Version: 8.2 PocketMine-MP Version: 5.6.1

Error

[Console Error:] 2023-10-01 [06:19:26.203] [Server thread/EMERGENCY]: Crash occurred while handling a packet from session: 127.0.0.1 62267 2023-10-01 [06:19:26.213] [Server thread/CRITICAL]: mysqli_sql_exception: "Malformed packet" (2027) in "plugins/BetterBan_dev-104 (1).phar/src/supercrafter333/BetterBan/Permission/MySQLBanList" at line 76 --- Stack trace ---

0 plugins/BetterBan_dev-104 (1).phar/src/supercrafter333/BetterBan/Permission/MySQLBanList(76): mysqli->ping()

1 plugins/BetterBan_dev-104 (1).phar/src/supercrafter333/BetterBan/Permission/MySQLBanList(150): supercrafter333\BetterBan\Permission\MySQLBanList->reconnect()

2 plugins/BetterBan_dev-104 (1).phar/src/supercrafter333/BetterBan/BetterBan(195): supercrafter333\BetterBan\Permission\MySQLBanList->isBanned(string[11] parham_king)

3 plugins/BetterBan_dev-104 (1).phar/src/supercrafter333/BetterBan/EventListener(148): supercrafter333\BetterBan\BetterBan::isBanned(string[11] parham_king)

4 pmsrc/src/event/RegisteredListener(61): supercrafter333\BetterBan\EventListener->onPreLogin(object pocketmine\event\player\PlayerPreLoginEvent#159782)

5 pmsrc/src/event/Event(63): pocketmine\event\RegisteredListener->callEvent(object pocketmine\event\player\PlayerPreLoginEvent#159782)

6 pmsrc/src/network/mcpe/handler/LoginPacketHandler(146): pocketmine\event\Event->call()

7 pmsrc/vendor/arabskills/bedrock-protocol/src/LoginPacket(105): pocketmine\network\mcpe\handler\LoginPacketHandler->handleLogin(object pocketmine\network\mcpe\protocol\LoginPacket#185296)

8 pmsrc/src/network/mcpe/NetworkSession(514): pocketmine\network\mcpe\protocol\LoginPacket->handle(object pocketmine\network\mcpe\handler\LoginPacketHandler#158784)

9 pmsrc/src/network/mcpe/NetworkSession(452): pocketmine\network\mcpe\NetworkSession->handleDataPacket(object pocketmine\network\mcpe\protocol\LoginPacket#185296, string[596392] ....j..$....{"chain":["eyJ4NXUiOiJNSFl3RUFZSEtvWkl6ajBDQVFZRks0RUVBQ0lEWWdBRXVwX)

10 pmsrc/src/network/mcpe/raklib/RakLibInterface(219): pocketmine\network\mcpe\NetworkSession->handleEncoded(string[26341] .....J.......|.o..O.*....V..Q.j!H...C.z.J ..J..8.{...3...Z.............b....$..2)

11 pmsrc/vendor/pocketmine/raklib-ipc/src/RakLibToUserThreadMessageReceiver(40): pocketmine\network\mcpe\raklib\RakLibInterface->onPacketReceive(int 0, string[26342] ......J.......|.o..O.*....V..Q.j!H...C.z.J ..J..8.{...3...Z.............b....$..)

12 pmsrc/src/network/mcpe/raklib/RakLibInterface(111): raklib\server\ipc\RakLibToUserThreadMessageReceiver->handle(object pocketmine\network\mcpe\raklib\RakLibInterface#157042)

13 pmsrc/vendor/pocketmine/snooze/src/SleeperHandler(120): pocketmine\network\mcpe\raklib\RakLibInterface->pocketmine\network\mcpe\raklib{closure}()

14 pmsrc/src/TimeTrackingSleeperHandler(58): pocketmine\snooze\SleeperHandler->processNotifications()

15 pmsrc/vendor/pocketmine/snooze/src/SleeperHandler(79): pocketmine\TimeTrackingSleeperHandler->processNotifications()

16 pmsrc/src/Server(1707): pocketmine\snooze\SleeperHandler->sleepUntil(float 1696141166.154)

17 pmsrc/src/Server(1089): pocketmine\Server->tickProcessor()

18 pmsrc/src/PocketMine(334): pocketmine\Server->__construct(object pocketmine\thread\ThreadSafeClassLoader#6, object pocketmine\utils\MainLogger#3, string[50] C:\Users\Administrator\Documents\MV - RL\5.Arcade\, string[58] C:\Users\Administrator\Documents\MV - RL\5.Arcade\plugins)

19 pmsrc/src/PocketMine(357): pocketmine\server()

20 pmsrc(11): require(string[94] phar://C:/Users/Administrator/Documents/MV - RL/5.Arcade/PocketMine-MP.phar/src/)

supercrafter333 commented 9 months ago

It will cost some time to work on this issue. I currently don't have so much time. But I'll work on it as soon as I have enough time again.

xqwtxon commented 2 months ago

Why not to use libasynql instead of using php native mysql library? Using this traditional method is may cause problems with queries specially when mysql connection is slow.