matcracker / BedcoreProtect

BedcoreProtect is a fast, efficient, data logging and anti-griefing tool for PocketMine servers. Rollback and restore any amount of damage.
https://poggit.pmmp.io/p/BedcoreProtect/
GNU General Public License v3.0
43 stars 8 forks source link

Could not create a Tile on unloaded chunk during a rollback #50

Closed matcracker closed 3 years ago

matcracker commented 3 years ago

Issue description

Issue reported by an user in Discord channel:

[19:02:44] [Server thread/CRITICAL]: matcracker\BedcoreProtect\libs\SOFe\AwaitGenerator\AwaitException: "Unhandled async exception: Attempted to create tile pocketmine\tile\Chest in unloaded chunk -32 10" (EXCEPTION) in "plugins/BedcoreProtect_dev-414.phar/src/matcracker/BedcoreProtect/libs/SOFe/AwaitGenerator/Await" at line 465
[19:02:44] [Server thread/CRITICAL]: #0 plugins/BedcoreProtect_dev-414.phar/src/matcracker/BedcoreProtect/libs/SOFe/AwaitGenerator/Await(217): matcracker\BedcoreProtect\libs\SOFe\AwaitGenerator\Await->reject(object InvalidStateException)
[19:02:44] [Server thread/CRITICAL]: #1 plugins/BedcoreProtect_dev-414.phar/src/matcracker/BedcoreProtect/libs/SOFe/AwaitGenerator/Await(200): matcracker\BedcoreProtect\libs\SOFe\AwaitGenerator\Await->wakeup(object Closure)
[19:02:44] [Server thread/CRITICAL]: #2 plugins/BedcoreProtect_dev-414.phar/src/matcracker/BedcoreProtect/libs/SOFe/AwaitGenerator/Await(422): matcracker\BedcoreProtect\libs\SOFe\AwaitGenerator\Await->wakeupFlat(object Closure)
[19:02:44] [Server thread/CRITICAL]: #3 plugins/BedcoreProtect_dev-414.phar/src/matcracker/BedcoreProtect/libs/SOFe/AwaitGenerator/AwaitChild(63): matcracker\BedcoreProtect\libs\SOFe\AwaitGenerator\Await->recheckPromiseQueue(object matcracker\BedcoreProtect\libs\SOFe\AwaitGenerator\AwaitChild)
[19:02:44] [Server thread/CRITICAL]: #4 plugins/BedcoreProtect_dev-414.phar/src/matcracker/BedcoreProtect/libs/SOFe/AwaitGenerator/Await(461): matcracker\BedcoreProtect\libs\SOFe\AwaitGenerator\AwaitChild->reject(object InvalidStateException)
[19:02:44] [Server thread/CRITICAL]: #5 plugins/BedcoreProtect_dev-414.phar/src/matcracker/BedcoreProtect/libs/SOFe/AwaitGenerator/Await(217): matcracker\BedcoreProtect\libs\SOFe\AwaitGenerator\Await->reject(object InvalidStateException)
[19:02:44] [Server thread/CRITICAL]: #6 plugins/BedcoreProtect_dev-414.phar/src/matcracker/BedcoreProtect/libs/SOFe/AwaitGenerator/Await(200): matcracker\BedcoreProtect\libs\SOFe\AwaitGenerator\Await->wakeup(object Closure)
[19:02:44] [Server thread/CRITICAL]: #7 plugins/BedcoreProtect_dev-414.phar/src/matcracker/BedcoreProtect/libs/SOFe/AwaitGenerator/Await(432): matcracker\BedcoreProtect\libs\SOFe\AwaitGenerator\Await->wakeupFlat(object Closure)
[19:02:44] [Server thread/CRITICAL]: #8 plugins/BedcoreProtect_dev-414.phar/src/matcracker/BedcoreProtect/libs/SOFe/AwaitGenerator/AwaitChild(52): matcracker\BedcoreProtect\libs\SOFe\AwaitGenerator\Await->recheckPromiseQueue(object matcracker\BedcoreProtect\libs\SOFe\AwaitGenerator\AwaitChild)
[19:02:44] [Server thread/CRITICAL]: #9 plugins/BedcoreProtect_dev-414.phar/src/matcracker/BedcoreProtect/libs/SOFe/AwaitGenerator/Await(448): matcracker\BedcoreProtect\libs\SOFe\AwaitGenerator\AwaitChild->resolve(array[646837])
[19:02:44] [Server thread/CRITICAL]: #10 plugins/BedcoreProtect_dev-414.phar/src/matcracker/BedcoreProtect/libs/SOFe/AwaitGenerator/Await(223): matcracker\BedcoreProtect\libs\SOFe\AwaitGenerator\Await->resolve(array[646837])
[19:02:44] [Server thread/CRITICAL]: #11 plugins/BedcoreProtect_dev-414.phar/src/matcracker/BedcoreProtect/libs/SOFe/AwaitGenerator/Await(200): matcracker\BedcoreProtect\libs\SOFe\AwaitGenerator\Await->wakeup(object Closure)
[19:02:44] [Server thread/CRITICAL]: #12 plugins/BedcoreProtect_dev-414.phar/src/matcracker/BedcoreProtect/libs/SOFe/AwaitGenerator/Await(432): matcracker\BedcoreProtect\libs\SOFe\AwaitGenerator\Await->wakeupFlat(object Closure)
[19:02:44] [Server thread/CRITICAL]: #13 plugins/BedcoreProtect_dev-414.phar/src/matcracker/BedcoreProtect/libs/SOFe/AwaitGenerator/AwaitChild(52): matcracker\BedcoreProtect\libs\SOFe\AwaitGenerator\Await->recheckPromiseQueue(object matcracker\BedcoreProtect\libs\SOFe\AwaitGenerator\AwaitChild)
[19:02:44] [Server thread/CRITICAL]: #14 plugins/BedcoreProtect_dev-414.phar/src/matcracker/BedcoreProtect/libs/poggit/libasynql/base/DataConnectorImpl(159): matcracker\BedcoreProtect\libs\SOFe\AwaitGenerator\AwaitChild->resolve(array[646837], array[8])
[19:02:44] [Server thread/CRITICAL]: #15 plugins/BedcoreProtect_dev-414.phar/src/matcracker/BedcoreProtect/libs/poggit/libasynql/base/DataConnectorImpl(189): matcracker\BedcoreProtect\libs\poggit\libasynql\base\DataConnectorImpl->matcracker\BedcoreProtect\libs\poggit\libasynql\base\{closure}(object matcracker\BedcoreProtect\libs\poggit\libasynql\result\SqlSelectResult)
[19:02:44] [Server thread/CRITICAL]: #16 plugins/BedcoreProtect_dev-414.phar/src/matcracker/BedcoreProtect/libs/poggit/libasynql/base/SqlThreadPool(112): matcracker\BedcoreProtect\libs\poggit\libasynql\base\DataConnectorImpl->matcracker\BedcoreProtect\libs\poggit\libasynql\base\{closure}(object matcracker\BedcoreProtect\libs\poggit\libasynql\result\SqlSelectResult)
[19:02:44] [Server thread/CRITICAL]: #17 plugins/BedcoreProtect_dev-414.phar/src/matcracker/BedcoreProtect/libs/poggit/libasynql/base/DataConnectorImpl(268): matcracker\BedcoreProtect\libs\poggit\libasynql\base\SqlThreadPool->readResults(array[1])
[19:02:44] [Server thread/CRITICAL]: #18 plugins/BedcoreProtect_dev-414.phar/src/matcracker/BedcoreProtect/libs/poggit/libasynql/base/SqlThreadPool(65): matcracker\BedcoreProtect\libs\poggit\libasynql\base\DataConnectorImpl->checkResults()
[19:02:44] [Server thread/CRITICAL]: #19 pmsrc/vendor/pocketmine/snooze/src/SleeperHandler(113): matcracker\BedcoreProtect\libs\poggit\libasynql\base\SqlThreadPool->matcracker\BedcoreProtect\libs\poggit\libasynql\base\{closure}()
[19:02:44] [Server thread/CRITICAL]: #20 pmsrc/vendor/pocketmine/snooze/src/SleeperHandler(75): pocketmine\snooze\SleeperHandler->processNotifications()
[19:02:44] [Server thread/CRITICAL]: #21 pmsrc/src/pocketmine/Server(2155): pocketmine\snooze\SleeperHandler->sleepUntil(double 1624647763.7865)
[19:02:44] [Server thread/CRITICAL]: #22 pmsrc/src/pocketmine/Server(1992): pocketmine\Server->tickProcessor()
[19:02:44] [Server thread/CRITICAL]: #23 pmsrc/src/pocketmine/Server(1586): pocketmine\Server->start()
[19:02:44] [Server thread/CRITICAL]: #24 pmsrc/src/pocketmine/PocketMine(291): pocketmine\Server->__construct(object BaseClassLoader, object pocketmine\utils\MainLogger, string[16] /home/container/, string[24] /home/container/plugins/)
[19:02:44] [Server thread/CRITICAL]: #25 pmsrc/src/pocketmine/PocketMine(321): pocketmine\server()
[19:02:44] [Server thread/CRITICAL]: #26 pmsrc(11): require(string[71] phar:///home/container/PocketMine-MP.phar/src/pocketmine/PocketMine.php)
[19:02:44] [Server thread/CRITICAL]: Previous: InvalidStateException: "Attempted to create tile pocketmine\tile\Chest in unloaded chunk -32 10" (EXCEPTION) in "pmsrc/src/pocketmine/level/Level" at line 2609

Steps to reproduce the issue

  1. Rollback a Chest in an unloaded chunk

OS and versions

Plugins

Crashdump, backtrace or other files

matcracker commented 3 years ago

The issue was caused from that: https://github.com/matcracker/BedcoreProtect/commit/62e75d3f84fed3c3547ae902a0096f63e44cb661