Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Undefined behavior with SQLite transaction using a worker limit > 1 #22

Closed
matcracker opened this issue May 17, 2020 · 0 comments
Closed

Comments

@matcracker
Copy link
Owner

Issue description

Using more than 1 worker with SQLite causes strange behavior with transactions.

Steps to reproduce the issue

  1. Set the worker-limit to 2
  2. Wait different minutes because the SQLiteTransaction task need to be executed.

OS and versions

  • BedcoreProtect: 0.6.0
  • PocketMine-MP: 3.12.1
  • PHP: 7.3
  • Server OS: Win10
  • Game version: PE/Win10 (delete as appropriate)

Crashdump, backtrace or other files

2020-05-16 [01:50:23] [Server thread/CRITICAL]: matcracker\BedcoreProtect\libs\SOFe\AwaitGenerator\AwaitException: "Unhandled async exception" (EXCEPTION) in "plugins/BedcoreProtect.phar/src/matcracker/BedcoreProtect/libs/SOFe/AwaitGenerator/Await" at line 377
2020-05-16 [01:50:23] [Server thread/DEBUG]: #0 plugins/BedcoreProtect.phar/src/matcracker/BedcoreProtect/libs/SOFe/AwaitGenerator/Await(143): matcracker\BedcoreProtect\libs\SOFe\AwaitGenerator\Await->reject(object matcracker\BedcoreProtect\libs\poggit\libasynql\SqlError)
2020-05-16 [01:50:23] [Server thread/DEBUG]: #1 plugins/BedcoreProtect.phar/src/matcracker/BedcoreProtect/libs/SOFe/AwaitGenerator/Await(117): matcracker\BedcoreProtect\libs\SOFe\AwaitGenerator\Await->wakeup(object Closure)
2020-05-16 [01:50:23] [Server thread/DEBUG]: #2 plugins/BedcoreProtect.phar/src/matcracker/BedcoreProtect/libs/SOFe/AwaitGenerator/Await(338): matcracker\BedcoreProtect\libs\SOFe\AwaitGenerator\Await->wakeupFlat(object Closure)
2020-05-16 [01:50:23] [Server thread/DEBUG]: #3 plugins/BedcoreProtect.phar/src/matcracker/BedcoreProtect/libs/SOFe/AwaitGenerator/AwaitChild(48): matcracker\BedcoreProtect\libs\SOFe\AwaitGenerator\Await->recheckPromiseQueue(object matcracker\BedcoreProtect\libs\SOFe\AwaitGenerator\AwaitChild)
2020-05-16 [01:50:23] [Server thread/DEBUG]: #4 plugins/BedcoreProtect.phar/src/matcracker/BedcoreProtect/libs/SOFe/AwaitGenerator/Await(373): matcracker\BedcoreProtect\libs\SOFe\AwaitGenerator\AwaitChild->reject(object matcracker\BedcoreProtect\libs\poggit\libasynql\SqlError)
2020-05-16 [01:50:23] [Server thread/DEBUG]: #5 plugins/BedcoreProtect.phar/src/matcracker/BedcoreProtect/libs/SOFe/AwaitGenerator/Await(143): matcracker\BedcoreProtect\libs\SOFe\AwaitGenerator\Await->reject(object matcracker\BedcoreProtect\libs\poggit\libasynql\SqlError)
2020-05-16 [01:50:23] [Server thread/DEBUG]: #6 plugins/BedcoreProtect.phar/src/matcracker/BedcoreProtect/libs/SOFe/AwaitGenerator/Await(117): matcracker\BedcoreProtect\libs\SOFe\AwaitGenerator\Await->wakeup(object Closure)
2020-05-16 [01:50:23] [Server thread/DEBUG]: #7 plugins/BedcoreProtect.phar/src/matcracker/BedcoreProtect/libs/SOFe/AwaitGenerator/Await(338): matcracker\BedcoreProtect\libs\SOFe\AwaitGenerator\Await->wakeupFlat(object Closure)
2020-05-16 [01:50:23] [Server thread/DEBUG]: #8 plugins/BedcoreProtect.phar/src/matcracker/BedcoreProtect/libs/SOFe/AwaitGenerator/AwaitChild(48): matcracker\BedcoreProtect\libs\SOFe\AwaitGenerator\Await->recheckPromiseQueue(object matcracker\BedcoreProtect\libs\SOFe\AwaitGenerator\AwaitChild)
2020-05-16 [01:50:23] [Server thread/DEBUG]: #9 plugins/BedcoreProtect.phar/src/matcracker/BedcoreProtect/libs/poggit/libasynql/base/DataConnectorImpl(240): matcracker\BedcoreProtect\libs\SOFe\AwaitGenerator\AwaitChild->reject(object matcracker\BedcoreProtect\libs\poggit\libasynql\SqlError, NULL )
2020-05-16 [01:50:23] [Server thread/DEBUG]: #10 plugins/BedcoreProtect.phar/src/matcracker/BedcoreProtect/libs/poggit/libasynql/base/DataConnectorImpl(186): matcracker\BedcoreProtect\libs\poggit\libasynql\base\DataConnectorImpl->reportError(array[2], object matcracker\BedcoreProtect\libs\poggit\libasynql\SqlError, NULL )
2020-05-16 [01:50:23] [Server thread/DEBUG]: #11 plugins/BedcoreProtect.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\SqlError)
2020-05-16 [01:50:23] [Server thread/DEBUG]: #12 plugins/BedcoreProtect.phar/src/matcracker/BedcoreProtect/libs/poggit/libasynql/base/DataConnectorImpl(268): matcracker\BedcoreProtect\libs\poggit\libasynql\base\SqlThreadPool->readResults(array[17428])
2020-05-16 [01:50:23] [Server thread/DEBUG]: #13 plugins/BedcoreProtect.phar/src/matcracker/BedcoreProtect/libs/poggit/libasynql/base/SqlThreadPool(65): matcracker\BedcoreProtect\libs\poggit\libasynql\base\DataConnectorImpl->checkResults()
2020-05-16 [01:50:23] [Server thread/DEBUG]: #14 vendor/pocketmine/snooze/src/SleeperHandler(123): matcracker\BedcoreProtect\libs\poggit\libasynql\base\SqlThreadPool->matcracker\BedcoreProtect\libs\poggit\libasynql\base\{closure}()
2020-05-16 [01:50:23] [Server thread/DEBUG]: #15 vendor/pocketmine/snooze/src/SleeperHandler(85): pocketmine\snooze\SleeperHandler->processNotifications()
2020-05-16 [01:50:23] [Server thread/DEBUG]: #16 src/pocketmine/Server(2146): pocketmine\snooze\SleeperHandler->sleepUntil(double 1589583023.4922)
2020-05-16 [01:50:23] [Server thread/DEBUG]: #17 src/pocketmine/Server(1990): pocketmine\Server->tickProcessor()
2020-05-16 [01:50:23] [Server thread/DEBUG]: #18 src/pocketmine/Server(1584): pocketmine\Server->start()
2020-05-16 [01:50:23] [Server thread/DEBUG]: #19 src/pocketmine/PocketMine(272): pocketmine\Server->__construct(object BaseClassLoader, object pocketmine\utils\MainLogger, string[17] /home/admin/mcpe/, string[25] /home/admin/mcpe/plugins/)
2020-05-16 [01:50:23] [Server thread/DEBUG]: #20 src/pocketmine/PocketMine(295): pocketmine\server()
2020-05-16 [01:50:23] [Server thread/DEBUG]: #21 (11): require(string[72] phar:///home/admin/mcpe/PocketMine-MP.phar/src/pocketmine/PocketMine.php)
2020-05-16 [01:50:23] [Server thread/DEBUG]: Previous: matcracker\BedcoreProtect\libs\poggit\libasynql\SqlError: "SQL EXECUTION error: cannot commit - no transaction is active, for query END TRANSACTION; | []" (EXCEPTION) in "plugins/BedcoreProtect.phar/src/matcracker/BedcoreProtect/libs/poggit/libasynql/sqlite3/Sqlite3Thread" at line 91
2020-05-16 [01:50:23] [Server thread/DEBUG]:   #0 plugins/BedcoreProtect.phar/src/matcracker/BedcoreProtect/libs/poggit/libasynql/base/SqlSlaveThread(85): matcracker\BedcoreProtect\libs\poggit\libasynql\sqlite3\Sqlite3Thread->executeQuery(string[15] object(SQLite3), integer 0, string[16] END TRANSACTION;, array[0])
2020-05-16 [01:50:23] [Server thread/DEBUG]:   #1 (): matcracker\BedcoreProtect\libs\poggit\libasynql\base\SqlSlaveThread->run()
2020-05-16 [01:50:23] [Server thread/DEBUG]:   #2 Internal(0): Corrected generator stack trace()
2020-05-16 [01:50:23] [Server thread/DEBUG]:   #3 plugins/BedcoreProtect.phar/src/matcracker/BedcoreProtect/storage/queries/Query(118): executeGeneric()
2020-05-16 [01:50:23] [Server thread/DEBUG]:   #4 plugins/BedcoreProtect.phar/src/matcracker/BedcoreProtect/storage/queries/PluginQueries(134): matcracker\BedcoreProtect\storage\queries\{closure}()
@matcracker matcracker added the Status: Debugged Cause of the bug has been found, but not fixed label May 17, 2020
@matcracker matcracker added Resolution: Fixed and removed Status: Debugged Cause of the bug has been found, but not fixed labels May 17, 2020
@vkamz597 vkamz597 mentioned this issue Nov 15, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant