born05 / craft-colorextractor

Extract colors from image assets in Craft CMS.
MIT License
2 stars 5 forks source link

Color extractor fails when used with craft-async-queue #4

Closed EternalBlack closed 5 years ago

EternalBlack commented 5 years ago

I am experiencing errors when I try to use the color extractor plugin in conjunction with craft-async-queue. With async-queue disabled it works just fine though.

roelvanhintum commented 5 years ago

@EternalBlack can you provide error logs?

EternalBlack commented 5 years ago

@roelvanhintum Sure, here you go. Cleared the logs and just uploaded an image. With Async-queue disabled it extracts a colors like expected. With it enabled it unfortunately fails (same image though).

Can't say for sure, but it kinda runs out of memory if I'm not mistaken. :( Allowed memory size of 134217728 bytes exhausted (tried to allocate 4194304 bytes) in /***MYPATH***/league/color-extractor/src/League/ColorExtractor/ColorExtractor.php:55 (from queue.log)

console.log

> 2019-03-19 10:04:57 [-][-][-][info][yii\db\Command::execute] UPDATE `queue` SET `dateReserved`='2019-03-19 09:04:57', `timeUpdated`=1552986297, `attempt`=1 WHERE `id`='524'
> 2019-03-19 10:04:57 [-][-][-][profile begin][yii\db\Command::execute] UPDATE `queue` SET `dateReserved`='2019-03-19 09:04:57', `timeUpdated`=1552986297, `attempt`=1 WHERE `id`='524'
> 2019-03-19 10:04:57 [-][-][-][profile end][yii\db\Command::execute] UPDATE `queue` SET `dateReserved`='2019-03-19 09:04:57', `timeUpdated`=1552986297, `attempt`=1 WHERE `id`='524'
> 2019-03-19 10:04:58 [-][-][-][error][craft\queue\QueueLogBehavior::afterError]  [524] ColorExtractorTask (attempt: 1) - Error (time: 1552986298.365s): The command "/opt/plesk/php/7.3/bin/php craft queue/exec "524" "300" "1" "" --color=" failed.
> 
> Exit Code: 255(Unknown error)
> 
> Working directory: ***MYPATH***
> 
> Output:
> ================
> 
> 
> Error Output:
> ================
> PHP Fatal Error 'yii\base\ErrorException' with message 'Allowed memory size of 134217728 bytes exhausted (tried to allocate 4194304 bytes)'
> 
> in ***MYPATH***/vendor/league/color-extractor/src/League/ColorExtractor/ColorExtractor.php:55
> 
> Stack trace:
> #0 [internal function]: yii\base\ErrorHandler->handleFatalError()
> #1 {main}
> 
> 2019-03-19 10:04:58 [-][-][-][error][Symfony\Component\Process\Exception\ProcessFailedException] Symfony\Component\Process\Exception\ProcessFailedException: The command "/opt/plesk/php/7.3/bin/php craft queue/exec "524" "300" "1" "" --color=" failed.
> 
> Exit Code: 255(Unknown error)
> 
> Working directory: ***MYPATH***
> 
> Output:
> ================
> 
> 
> Error Output:
> ================
> PHP Fatal Error 'yii\base\ErrorException' with message 'Allowed memory size of 134217728 bytes exhausted (tried to allocate 4194304 bytes)'
> 
> in ***MYPATH***/vendor/league/color-extractor/src/League/ColorExtractor/ColorExtractor.php:55
> 
> Stack trace:
> #0 [internal function]: yii\base\ErrorHandler->handleFatalError()
> #1 {main}
>  in ***MYPATH***/vendor/yiisoft/yii2-queue/src/cli/Command.php:193
> Stack trace:
> #0 ***MYPATH***/vendor/yiisoft/yii2-queue/src/cli/Command.php(125): yii\queue\cli\Command->handleMessage('524', 'O:45:"born05\\co...', '300', 1)
> #1 [internal function]: yii\queue\cli\Command->yii\queue\cli\{closure}('524', 'O:45:"born05\\co...', '300', 1)
> #2 ***MYPATH***/vendor/yiisoft/yii2-queue/src/cli/Queue.php(144): call_user_func(Object(Closure), '524', 'O:45:"born05\\co...', '300', 1)
> #3 ***MYPATH***/vendor/craftcms/cms/src/queue/Queue.php(96): yii\queue\cli\Queue->handleMessage('524', 'O:45:"born05\\co...', '300', 1)
> #4 ***MYPATH***/vendor/craftcms/cms/src/queue/Command.php(82): craft\queue\Queue->run()
> #5 [internal function]: craft\queue\Command->actionRun()
> #6 ***MYPATH***/vendor/yiisoft/yii2/base/InlineAction.php(57): call_user_func_array(Array, Array)
> #7 ***MYPATH***/vendor/yiisoft/yii2/base/Controller.php(157): yii\base\InlineAction->runWithParams(Array)
> #8 ***MYPATH***/vendor/yiisoft/yii2/console/Controller.php(148): yii\base\Controller->runAction('run', Array)
> #9 ***MYPATH***/vendor/yiisoft/yii2/base/Module.php(528): yii\console\Controller->runAction('run', Array)
> #10 ***MYPATH***/vendor/yiisoft/yii2/console/Application.php(180): yii\base\Module->runAction('queue/run', Array)
> #11 ***MYPATH***/vendor/craftcms/cms/src/console/Application.php(93): yii\console\Application->runAction('queue/run', Array)
> #12 ***MYPATH***/vendor/yiisoft/yii2/console/Application.php(147): craft\console\Application->runAction('queue/run', Array)
> #13 ***MYPATH***/vendor/yiisoft/yii2/base/Application.php(386): yii\console\Application->handleRequest(Object(craft\console\Request))
> #14 ***MYPATH***/craft(22): yii\base\Application->run()
> #15 {main}
> 2019-03-19 10:04:58 [-][-][-][info][yii\db\Command::execute] UPDATE `queue` SET `fail`=1, `dateFailed`='2019-03-19 09:04:58', `error`='The command \"/opt/plesk/php/7.3/bin/php craft queue/exec \"524\" \"300\" \"1\" \"\" --color=\" failed.\n\nExit Code: 255(Unknown error)\n\nWorking directory: ***MYPATH***\n\nOutput:\n================\n\n\nError Output:\n================\nPHP Fatal Error \'yii\\base\\ErrorException\' with message \'Allowed memory size of 134217728 bytes exhausted (tried to allocate 4194304 bytes)\'\n\nin ***MYPATH***/vendor/league/color-extractor/src/League/ColorExtractor/ColorExtractor.php:55\n\nStack trace:\n#0 [internal function]: yii\\base\\ErrorHandler->handleFatalError()\n#1 {main}\n' WHERE `id`='524'
> 2019-03-19 10:04:58 [-][-][-][profile begin][yii\db\Command::execute] UPDATE `queue` SET `fail`=1, `dateFailed`='2019-03-19 09:04:58', `error`='The command \"/opt/plesk/php/7.3/bin/php craft queue/exec \"524\" \"300\" \"1\" \"\" --color=\" failed.\n\nExit Code: 255(Unknown error)\n\nWorking directory: ***MYPATH***\n\nOutput:\n================\n\n\nError Output:\n================\nPHP Fatal Error \'yii\\base\\ErrorException\' with message \'Allowed memory size of 134217728 bytes exhausted (tried to allocate 4194304 bytes)\'\n\nin ***MYPATH***/vendor/league/color-extractor/src/League/ColorExtractor/ColorExtractor.php:55\n\nStack trace:\n#0 [internal function]: yii\\base\\ErrorHandler->handleFatalError()\n#1 {main}\n' WHERE `id`='524'
> 2019-03-19 10:04:58 [-][-][-][profile end][yii\db\Command::execute] UPDATE `queue` SET `fail`=1, `dateFailed`='2019-03-19 09:04:58', `error`='The command \"/opt/plesk/php/7.3/bin/php craft queue/exec \"524\" \"300\" \"1\" \"\" --color=\" failed.\n\nExit Code: 255(Unknown error)\n\nWorking directory: ***MYPATH***\n\nOutput:\n================\n\n\nError Output:\n================\nPHP Fatal Error \'yii\\base\\ErrorException\' with message \'Allowed memory size of 134217728 bytes exhausted (tried to allocate 4194304 bytes)\'\n\nin ***MYPATH***/vendor/league/color-extractor/src/League/ColorExtractor/ColorExtractor.php:55\n\nStack trace:\n#0 [internal function]: yii\\base\\ErrorHandler->handleFatalError()\n#1 {main}\n' WHERE `id`='524'
> 2019-03-19 10:04:58 [-][-][-][info][yii\db\Command::execute] UPDATE `queue` SET `dateReserved`=NULL, `timeUpdated`=NULL, `progress`=0 WHERE `timeUpdated` < 1552986298 - `ttr`
> 2019-03-19 10:04:58 [-][-][-][profile begin][yii\db\Command::execute] UPDATE `queue` SET `dateReserved`=NULL, `timeUpdated`=NULL, `progress`=0 WHERE `timeUpdated` < 1552986298 - `ttr`
> 2019-03-19 10:04:58 [-][-][-][profile end][yii\db\Command::execute] UPDATE `queue` SET `dateReserved`=NULL, `timeUpdated`=NULL, `progress`=0 WHERE `timeUpdated` < 1552986298 - `ttr`
> 2019-03-19 10:04:58 [-][-][-][info][yii\db\Command::query] SELECT *
> FROM `queue`
> WHERE ((`fail`=FALSE) AND (`timeUpdated` IS NULL)) AND (`timePushed` <= 1552986298 - `delay`)
> ORDER BY `priority`, `id`
> LIMIT 1
> 2019-03-19 10:04:58 [-][-][-][profile begin][yii\db\Command::query] SELECT *
> FROM `queue`
> WHERE ((`fail`=FALSE) AND (`timeUpdated` IS NULL)) AND (`timePushed` <= 1552986298 - `delay`)
> ORDER BY `priority`, `id`
> LIMIT 1
> 2019-03-19 10:04:58 [-][-][-][profile end][yii\db\Command::query] SELECT *
> FROM `queue`
> WHERE ((`fail`=FALSE) AND (`timeUpdated` IS NULL)) AND (`timePushed` <= 1552986298 - `delay`)
> ORDER BY `priority`, `id`
> LIMIT 1
> 2019-03-19 10:04:58 [-][-][-][trace][async-queue] ProcessPool::decrement() (1 of 2, context: craft\queue\Command::run() afterAction)
> 2019-03-19 10:04:57 [-][-][-][info][application] $_GET = []
> 
> 2019-03-19 10:05:01 [-][-][-][info][yii\db\Connection::open] Opening DB connection: mysql:host=localhost;dbname=myDB;port=3306;
> 2019-03-19 10:05:01 [-][-][-][profile begin][yii\db\Connection::open] Opening DB connection: mysql:host=localhost;dbname=myDB;port=3306;
> 2019-03-19 10:05:01 [-][-][-][profile end][yii\db\Connection::open] Opening DB connection: mysql:host=localhost;dbname=myDB;port=3306;
> 2019-03-19 10:05:01 [-][-][-][info][yii\db\Command::query] SHOW TABLES
> 2019-03-19 10:05:01 [-][-][-][profile begin][yii\db\Command::query] SHOW TABLES
> 2019-03-19 10:05:01 [-][-][-][profile end][yii\db\Command::query] SHOW TABLES
> 2019-03-19 10:05:01 [-][-][-][info][yii\db\Command::query] SELECT *
> FROM `info`
> LIMIT 1
> 2019-03-19 10:05:01 [-][-][-][profile begin][yii\db\Command::query] SELECT *
> FROM `info`
> LIMIT 1
> 2019-03-19 10:05:01 [-][-][-][profile end][yii\db\Command::query] SELECT *
> FROM `info`
> LIMIT 1
> 2019-03-19 10:05:01 [-][-][-][trace][yii\base\Application::bootstrap] Bootstrap with omnilight\scheduling\Bootstrap::bootstrap()
> 2019-03-19 10:05:01 [-][-][-][trace][yii\base\Application::bootstrap] Bootstrap with craft\queue\Queue::bootstrap()
> 2019-03-19 10:05:01 [-][-][-][info][yii\db\Command::query] SELECT `id`, `handle`, `version`, `schemaVersion`, `licenseKeyStatus`, `installDate`, `licensedEdition`
> FROM `plugins`
> 2019-03-19 10:05:01 [-][-][-][profile begin][yii\db\Command::query] SELECT `id`, `handle`, `version`, `schemaVersion`, `licenseKeyStatus`, `installDate`, `licensedEdition`
> FROM `plugins`
> 2019-03-19 10:05:01 [-][-][-][profile end][yii\db\Command::query] SELECT `id`, `handle`, `version`, `schemaVersion`, `licenseKeyStatus`, `installDate`, `licensedEdition`
> FROM `plugins`
> 2019-03-19 10:05:01 [-][-][-][info][lukeyouell\support\Support::init] Support plugin loaded
> 2019-03-19 10:05:01 [-][-][-][info][superbig\entryinstructions\EntryInstructions::init] Entry Instructions plugin loaded
> 2019-03-19 10:05:01 [-][-][-][info][yii\db\Command::query] SELECT `id`, `groupId`, `enabled`, `name`, `class`, `event`, `type`, `url`, `userAttributes`, `senderAttributes`, `eventAttributes`
> FROM `webhooks`
> WHERE `enabled`=TRUE
> 2019-03-19 10:05:01 [-][-][-][profile begin][yii\db\Command::query] SELECT `id`, `groupId`, `enabled`, `name`, `class`, `event`, `type`, `url`, `userAttributes`, `senderAttributes`, `eventAttributes`
> FROM `webhooks`
> WHERE `enabled`=TRUE
> 2019-03-19 10:05:01 [-][-][-][profile end][yii\db\Command::query] SELECT `id`, `groupId`, `enabled`, `name`, `class`, `event`, `type`, `url`, `userAttributes`, `senderAttributes`, `eventAttributes`
> FROM `webhooks`
> WHERE `enabled`=TRUE
> 2019-03-19 10:05:01 [-][-][-][info][nystudio107\similar\Similar::init] Similar plugin loaded
> 2019-03-19 10:05:01 [-][-][-][info][yii\db\Command::query] SELECT `sections`.`id`, `sections`.`structureId`, `sections`.`name`, `sections`.`handle`, `sections`.`type`, `sections`.`enableVersioning`, `sections`.`propagateEntries`, `sections`.`uid`, `structures`.`maxLevels`
> FROM `sections` `sections`
> LEFT JOIN `structures` `structures` ON (`structures`.`id` = `sections`.`structureId`) AND (`structures`.`dateDeleted` IS NULL)
> WHERE `sections`.`dateDeleted` IS NULL
> ORDER BY `name`
> 2019-03-19 10:05:01 [-][-][-][profile begin][yii\db\Command::query] SELECT `sections`.`id`, `sections`.`structureId`, `sections`.`name`, `sections`.`handle`, `sections`.`type`, `sections`.`enableVersioning`, `sections`.`propagateEntries`, `sections`.`uid`, `structures`.`maxLevels`
> FROM `sections` `sections`
> LEFT JOIN `structures` `structures` ON (`structures`.`id` = `sections`.`structureId`) AND (`structures`.`dateDeleted` IS NULL)
> WHERE `sections`.`dateDeleted` IS NULL
> ORDER BY `name`
> 2019-03-19 10:05:01 [-][-][-][profile end][yii\db\Command::query] SELECT `sections`.`id`, `sections`.`structureId`, `sections`.`name`, `sections`.`handle`, `sections`.`type`, `sections`.`enableVersioning`, `sections`.`propagateEntries`, `sections`.`uid`, `structures`.`maxLevels`
> FROM `sections` `sections`
> LEFT JOIN `structures` `structures` ON (`structures`.`id` = `sections`.`structureId`) AND (`structures`.`dateDeleted` IS NULL)
> WHERE `sections`.`dateDeleted` IS NULL
> ORDER BY `name`
> 2019-03-19 10:05:01 [-][-][-][info][hillholliday\usermanual\UserManual::init] User Manual plugin loaded
> 2019-03-19 10:05:01 [-][-][-][info][nystudio107\typogrify\Typogrify::init] Typogrify plugin loaded
> 2019-03-19 10:05:01 [-][-][-][info][nystudio107\minify\Minify::init] Minify plugin loaded
> 2019-03-19 10:05:01 [-][-][-][info][supercool\buttonbox\ButtonBox::init] Button Box plugin loaded
> 2019-03-19 10:05:01 [-][-][-][info][kuriousagency\qrcode\QRCode::init] QRCode plugin loaded
> 2019-03-19 10:05:01 [-][-][-][info][olivestudio\olivemenus\Olivemenus::init] Olivemenus plugin loaded
> 2019-03-19 10:05:01 [-][-][-][info][cloudflare] Cloudflare plugin loaded
> 2019-03-19 10:05:01 [-][-][-][info][yii\db\Command::query] SELECT `s`.`id`, `s`.`groupId`, `s`.`name`, `s`.`handle`, `language`, `s`.`primary`, `s`.`hasUrls`, `s`.`baseUrl`, `s`.`sortOrder`, `s`.`uid`
> FROM `sites` `s`
> INNER JOIN `sitegroups` `sg` ON `sg`.`id` = `s`.`groupId`
> WHERE (`s`.`dateDeleted` IS NULL) AND (`sg`.`dateDeleted` IS NULL)
> ORDER BY `sg`.`name`, `s`.`sortOrder`
> 2019-03-19 10:05:01 [-][-][-][profile begin][yii\db\Command::query] SELECT `s`.`id`, `s`.`groupId`, `s`.`name`, `s`.`handle`, `language`, `s`.`primary`, `s`.`hasUrls`, `s`.`baseUrl`, `s`.`sortOrder`, `s`.`uid`
> FROM `sites` `s`
> INNER JOIN `sitegroups` `sg` ON `sg`.`id` = `s`.`groupId`
> WHERE (`s`.`dateDeleted` IS NULL) AND (`sg`.`dateDeleted` IS NULL)
> ORDER BY `sg`.`name`, `s`.`sortOrder`
> 2019-03-19 10:05:01 [-][-][-][profile end][yii\db\Command::query] SELECT `s`.`id`, `s`.`groupId`, `s`.`name`, `s`.`handle`, `language`, `s`.`primary`, `s`.`hasUrls`, `s`.`baseUrl`, `s`.`sortOrder`, `s`.`uid`
> FROM `sites` `s`
> INNER JOIN `sitegroups` `sg` ON `sg`.`id` = `s`.`groupId`
> WHERE (`s`.`dateDeleted` IS NULL) AND (`sg`.`dateDeleted` IS NULL)
> ORDER BY `sg`.`name`, `s`.`sortOrder`
> 2019-03-19 10:05:01 [-][-][-][info][mattwest\craftrecaptcha\CraftRecaptcha::init] reCAPTCHA plugin loaded
> 2019-03-19 10:05:01 [-][-][-][info][nystudio107\cookies\Cookies::init] Cookies plugin loaded
> 2019-03-19 10:05:01 [-][-][-][info][nystudio107\emptycoalesce\EmptyCoalesce::init] Empty Coalesce plugin loaded
> 2019-03-19 10:05:01 [-][-][-][info][miranj\obfuscator\Obfuscator::init] Obfuscator plugin loaded
> 2019-03-19 10:05:01 [-][-][-][info][wbrowar\communicator\Communicator::init] Communicator plugin loaded
> 2019-03-19 10:05:01 [-][-][-][info][mmikkel\incognitofield\IncognitoField::init] Incognito Field plugin loaded
> 2019-03-19 10:05:01 [-][-][-][trace][yii\base\Controller::runAction] Route to run: schedules/run
> 2019-03-19 10:05:01 [-][-][-][trace][yii\base\InlineAction::runWithParams] Running action: panlatent\schedule\console\SchedulesController::actionRun()
> 2019-03-19 10:05:01 [-][-][-][info][yii\db\Command::query] SELECT `id`, `groupId`, `name`, `handle`, `description`, `type`, `minute`, `hour`, `day`, `month`, `week`, `user`, `timer`, `settings`
> FROM `schedules`
> ORDER BY `sortOrder`
> 2019-03-19 10:05:01 [-][-][-][profile begin][yii\db\Command::query] SELECT `id`, `groupId`, `name`, `handle`, `description`, `type`, `minute`, `hour`, `day`, `month`, `week`, `user`, `timer`, `settings`
> FROM `schedules`
> ORDER BY `sortOrder`
> 2019-03-19 10:05:01 [-][-][-][profile end][yii\db\Command::query] SELECT `id`, `groupId`, `name`, `handle`, `description`, `type`, `minute`, `hour`, `day`, `month`, `week`, `user`, `timer`, `settings`
> FROM `schedules`
> ORDER BY `sortOrder`
> 2019-03-19 10:05:01 [-][-][-][info][application] $_GET = []

queue.log

> 2019-03-19 10:04:57 [-][-][-][info][mattwest\craftrecaptcha\CraftRecaptcha::init] reCAPTCHA plugin loaded
> 2019-03-19 10:04:57 [-][-][-][info][nystudio107\cookies\Cookies::init] Cookies plugin loaded
> 2019-03-19 10:04:57 [-][-][-][info][nystudio107\emptycoalesce\EmptyCoalesce::init] Empty Coalesce plugin loaded
> 2019-03-19 10:04:57 [-][-][-][info][miranj\obfuscator\Obfuscator::init] Obfuscator plugin loaded
> 2019-03-19 10:04:57 [-][-][-][info][wbrowar\communicator\Communicator::init] Communicator plugin loaded
> 2019-03-19 10:04:57 [-][-][-][info][mmikkel\incognitofield\IncognitoField::init] Incognito Field plugin loaded
> 2019-03-19 10:04:57 [-][-][-][trace][yii\base\Controller::runAction] Route to run: queue/exec
> 2019-03-19 10:04:57 [-][-][-][trace][yii\base\InlineAction::runWithParams] Running action: craft\queue\Command::actionExec()
> 2019-03-19 10:04:57 [-][-][-][info][craft\queue\QueueLogBehavior::beforeExec]  [524] ColorExtractorTask (attempt: 1) - Started
> 2019-03-19 10:04:57 [-][-][-][info][yii\db\Command::query] SELECT `fields`.`id`, `fields`.`dateCreated`, `fields`.`dateUpdated`, `fields`.`groupId`, `fields`.`name`, `fields`.`handle`, `fields`.`context`, `fields`.`instructions`, `fields`.`translationMethod`, `fields`.`translationKeyFormat`, `fields`.`type`, `fields`.`settings`, `fields`.`uid`, `fields`.`searchable`
> FROM `fields` `fields`
> ORDER BY `fields`.`name`, `fields`.`handle`
> 2019-03-19 10:04:57 [-][-][-][profile begin][yii\db\Command::query] SELECT `fields`.`id`, `fields`.`dateCreated`, `fields`.`dateUpdated`, `fields`.`groupId`, `fields`.`name`, `fields`.`handle`, `fields`.`context`, `fields`.`instructions`, `fields`.`translationMethod`, `fields`.`translationKeyFormat`, `fields`.`type`, `fields`.`settings`, `fields`.`uid`, `fields`.`searchable`
> FROM `fields` `fields`
> ORDER BY `fields`.`name`, `fields`.`handle`
> 2019-03-19 10:04:57 [-][-][-][profile end][yii\db\Command::query] SELECT `fields`.`id`, `fields`.`dateCreated`, `fields`.`dateUpdated`, `fields`.`groupId`, `fields`.`name`, `fields`.`handle`, `fields`.`context`, `fields`.`instructions`, `fields`.`translationMethod`, `fields`.`translationKeyFormat`, `fields`.`type`, `fields`.`settings`, `fields`.`uid`, `fields`.`searchable`
> FROM `fields` `fields`
> ORDER BY `fields`.`name`, `fields`.`handle`
> 2019-03-19 10:04:57 [-][-][-][info][yii\db\Command::query] SELECT `id`, `parentId`, `volumeId`, `name`, `path`, `uid`
> FROM `volumefolders`
> WHERE `uid`='31f15b1f-83a1-4007-a3a3-7877edb00712'
> LIMIT 1
> 2019-03-19 10:04:57 [-][-][-][profile begin][yii\db\Command::query] SELECT `id`, `parentId`, `volumeId`, `name`, `path`, `uid`
> FROM `volumefolders`
> WHERE `uid`='31f15b1f-83a1-4007-a3a3-7877edb00712'
> LIMIT 1
> 2019-03-19 10:04:57 [-][-][-][profile end][yii\db\Command::query] SELECT `id`, `parentId`, `volumeId`, `name`, `path`, `uid`
> FROM `volumefolders`
> WHERE `uid`='31f15b1f-83a1-4007-a3a3-7877edb00712'
> LIMIT 1
> 2019-03-19 10:04:57 [-][-][-][info][yii\db\Command::query] SELECT `id`, `dateCreated`, `dateUpdated`, `name`, `handle`, `hasUrls`, `url`, `sortOrder`, `fieldLayoutId`, `type`, `settings`, `uid`
> FROM `volumes`
> WHERE `dateDeleted` IS NULL
> ORDER BY `sortOrder`
> 2019-03-19 10:04:57 [-][-][-][profile begin][yii\db\Command::query] SELECT `id`, `dateCreated`, `dateUpdated`, `name`, `handle`, `hasUrls`, `url`, `sortOrder`, `fieldLayoutId`, `type`, `settings`, `uid`
> FROM `volumes`
> WHERE `dateDeleted` IS NULL
> ORDER BY `sortOrder`
> 2019-03-19 10:04:57 [-][-][-][profile end][yii\db\Command::query] SELECT `id`, `dateCreated`, `dateUpdated`, `name`, `handle`, `hasUrls`, `url`, `sortOrder`, `fieldLayoutId`, `type`, `settings`, `uid`
> FROM `volumes`
> WHERE `dateDeleted` IS NULL
> ORDER BY `sortOrder`
> 2019-03-19 10:04:57 [-][-][-][info][yii\db\Command::query] SELECT `elements`.`id`, `elements`.`fieldLayoutId`, `elements`.`uid`, `elements`.`enabled`, `elements`.`archived`, `elements`.`dateCreated`, `elements`.`dateUpdated`, `elements_sites`.`slug`, `elements_sites`.`uri`, `elements_sites`.`enabled` AS `enabledForSite`, `assets`.`volumeId`, `assets`.`folderId`, `assets`.`filename`, `assets`.`kind`, `assets`.`width`, `assets`.`height`, `assets`.`size`, `assets`.`focalPoint`, `assets`.`keptFile`, `assets`.`dateModified`, `volumeFolders`.`path` AS `folderPath`, `content`.`id` AS `contentId`, `content`.`title`, `content`.`field_androidStoreUrl`, `content`.`field_body`, `content`.`field_description`, `content`.`field_displayName`, `content`.`field_duration`, `content`.`field_fileSize`, `content`.`field_imageColor`, `content`.`field_iosStoreUrl`, `content`.`field_isExplicit`, `content`.`field_mediaurl`, `content`.`field_publicationDate`, `content`.`field_seo`, `content`.`field_subtitle`, `content`.`field_uniqueTitle`
> FROM (SELECT `elements`.`id` AS `elementsId`, `elements_sites`.`id` AS `elementsSitesId`, `content`.`id` AS `contentId`
> FROM `elements` `elements`
> INNER JOIN `assets` `assets` ON `assets`.`id` = `elements`.`id`
> INNER JOIN `elements_sites` `elements_sites` ON `elements_sites`.`elementId` = `elements`.`id`
> INNER JOIN `content` `content` ON `content`.`elementId` = `elements`.`id`
> WHERE ((`assets`.`kind`='image') OR (`assets`.`filename` LIKE '%.jfif') OR (`assets`.`filename` LIKE '%.jp2') OR (`assets`.`filename` LIKE '%.jpx') OR (`assets`.`filename` LIKE '%.jpg') OR (`assets`.`filename` LIKE '%.jpeg') OR (`assets`.`filename` LIKE '%.jpe') OR (`assets`.`filename` LIKE '%.tiff') OR (`assets`.`filename` LIKE '%.tif') OR (`assets`.`filename` LIKE '%.png') OR (`assets`.`filename` LIKE '%.gif') OR (`assets`.`filename` LIKE '%.bmp') OR (`assets`.`filename` LIKE '%.webp') OR (`assets`.`filename` LIKE '%.ppm') OR (`assets`.`filename` LIKE '%.pgm') OR (`assets`.`filename` LIKE '%.pnm') OR (`assets`.`filename` LIKE '%.pfm') OR (`assets`.`filename` LIKE '%.pam') OR (`assets`.`filename` LIKE '%.svg')) AND (`elements_sites`.`siteId`='1') AND (`content`.`siteId`='1') AND ((`content`.`field_imageColor` IS NULL) OR (`content`.`field_imageColor`='')) AND (`elements`.`id`=3299) AND (`elements`.`archived`=FALSE) AND (`elements`.`dateDeleted` IS NULL) AND (`elements_sites`.`enabled`=TRUE)
> ORDER BY `elements`.`dateCreated` DESC) `subquery`
> INNER JOIN `assets` `assets` ON `assets`.`id` = `subquery`.`elementsId`
> INNER JOIN `volumefolders` `volumeFolders` ON `assets`.`folderId` = `volumeFolders`.`id`
> INNER JOIN `elements` `elements` ON `elements`.`id` = `subquery`.`elementsId`
> INNER JOIN `elements_sites` `elements_sites` ON `elements_sites`.`id` = `subquery`.`elementsSitesId`
> INNER JOIN `content` `content` ON `content`.`id` = `subquery`.`contentId`
> ORDER BY `elements`.`dateCreated` DESC
> 2019-03-19 10:04:57 [-][-][-][profile begin][yii\db\Command::query] SELECT `elements`.`id`, `elements`.`fieldLayoutId`, `elements`.`uid`, `elements`.`enabled`, `elements`.`archived`, `elements`.`dateCreated`, `elements`.`dateUpdated`, `elements_sites`.`slug`, `elements_sites`.`uri`, `elements_sites`.`enabled` AS `enabledForSite`, `assets`.`volumeId`, `assets`.`folderId`, `assets`.`filename`, `assets`.`kind`, `assets`.`width`, `assets`.`height`, `assets`.`size`, `assets`.`focalPoint`, `assets`.`keptFile`, `assets`.`dateModified`, `volumeFolders`.`path` AS `folderPath`, `content`.`id` AS `contentId`, `content`.`title`, `content`.`field_androidStoreUrl`, `content`.`field_body`, `content`.`field_description`, `content`.`field_displayName`, `content`.`field_duration`, `content`.`field_fileSize`, `content`.`field_imageColor`, `content`.`field_iosStoreUrl`, `content`.`field_isExplicit`, `content`.`field_mediaurl`, `content`.`field_publicationDate`, `content`.`field_seo`, `content`.`field_subtitle`, `content`.`field_uniqueTitle`
> FROM (SELECT `elements`.`id` AS `elementsId`, `elements_sites`.`id` AS `elementsSitesId`, `content`.`id` AS `contentId`
> FROM `elements` `elements`
> INNER JOIN `assets` `assets` ON `assets`.`id` = `elements`.`id`
> INNER JOIN `elements_sites` `elements_sites` ON `elements_sites`.`elementId` = `elements`.`id`
> INNER JOIN `content` `content` ON `content`.`elementId` = `elements`.`id`
> WHERE ((`assets`.`kind`='image') OR (`assets`.`filename` LIKE '%.jfif') OR (`assets`.`filename` LIKE '%.jp2') OR (`assets`.`filename` LIKE '%.jpx') OR (`assets`.`filename` LIKE '%.jpg') OR (`assets`.`filename` LIKE '%.jpeg') OR (`assets`.`filename` LIKE '%.jpe') OR (`assets`.`filename` LIKE '%.tiff') OR (`assets`.`filename` LIKE '%.tif') OR (`assets`.`filename` LIKE '%.png') OR (`assets`.`filename` LIKE '%.gif') OR (`assets`.`filename` LIKE '%.bmp') OR (`assets`.`filename` LIKE '%.webp') OR (`assets`.`filename` LIKE '%.ppm') OR (`assets`.`filename` LIKE '%.pgm') OR (`assets`.`filename` LIKE '%.pnm') OR (`assets`.`filename` LIKE '%.pfm') OR (`assets`.`filename` LIKE '%.pam') OR (`assets`.`filename` LIKE '%.svg')) AND (`elements_sites`.`siteId`='1') AND (`content`.`siteId`='1') AND ((`content`.`field_imageColor` IS NULL) OR (`content`.`field_imageColor`='')) AND (`elements`.`id`=3299) AND (`elements`.`archived`=FALSE) AND (`elements`.`dateDeleted` IS NULL) AND (`elements_sites`.`enabled`=TRUE)
> ORDER BY `elements`.`dateCreated` DESC) `subquery`
> INNER JOIN `assets` `assets` ON `assets`.`id` = `subquery`.`elementsId`
> INNER JOIN `volumefolders` `volumeFolders` ON `assets`.`folderId` = `volumeFolders`.`id`
> INNER JOIN `elements` `elements` ON `elements`.`id` = `subquery`.`elementsId`
> INNER JOIN `elements_sites` `elements_sites` ON `elements_sites`.`id` = `subquery`.`elementsSitesId`
> INNER JOIN `content` `content` ON `content`.`id` = `subquery`.`contentId`
> ORDER BY `elements`.`dateCreated` DESC
> 2019-03-19 10:04:57 [-][-][-][profile end][yii\db\Command::query] SELECT `elements`.`id`, `elements`.`fieldLayoutId`, `elements`.`uid`, `elements`.`enabled`, `elements`.`archived`, `elements`.`dateCreated`, `elements`.`dateUpdated`, `elements_sites`.`slug`, `elements_sites`.`uri`, `elements_sites`.`enabled` AS `enabledForSite`, `assets`.`volumeId`, `assets`.`folderId`, `assets`.`filename`, `assets`.`kind`, `assets`.`width`, `assets`.`height`, `assets`.`size`, `assets`.`focalPoint`, `assets`.`keptFile`, `assets`.`dateModified`, `volumeFolders`.`path` AS `folderPath`, `content`.`id` AS `contentId`, `content`.`title`, `content`.`field_androidStoreUrl`, `content`.`field_body`, `content`.`field_description`, `content`.`field_displayName`, `content`.`field_duration`, `content`.`field_fileSize`, `content`.`field_imageColor`, `content`.`field_iosStoreUrl`, `content`.`field_isExplicit`, `content`.`field_mediaurl`, `content`.`field_publicationDate`, `content`.`field_seo`, `content`.`field_subtitle`, `content`.`field_uniqueTitle`
> FROM (SELECT `elements`.`id` AS `elementsId`, `elements_sites`.`id` AS `elementsSitesId`, `content`.`id` AS `contentId`
> FROM `elements` `elements`
> INNER JOIN `assets` `assets` ON `assets`.`id` = `elements`.`id`
> INNER JOIN `elements_sites` `elements_sites` ON `elements_sites`.`elementId` = `elements`.`id`
> INNER JOIN `content` `content` ON `content`.`elementId` = `elements`.`id`
> WHERE ((`assets`.`kind`='image') OR (`assets`.`filename` LIKE '%.jfif') OR (`assets`.`filename` LIKE '%.jp2') OR (`assets`.`filename` LIKE '%.jpx') OR (`assets`.`filename` LIKE '%.jpg') OR (`assets`.`filename` LIKE '%.jpeg') OR (`assets`.`filename` LIKE '%.jpe') OR (`assets`.`filename` LIKE '%.tiff') OR (`assets`.`filename` LIKE '%.tif') OR (`assets`.`filename` LIKE '%.png') OR (`assets`.`filename` LIKE '%.gif') OR (`assets`.`filename` LIKE '%.bmp') OR (`assets`.`filename` LIKE '%.webp') OR (`assets`.`filename` LIKE '%.ppm') OR (`assets`.`filename` LIKE '%.pgm') OR (`assets`.`filename` LIKE '%.pnm') OR (`assets`.`filename` LIKE '%.pfm') OR (`assets`.`filename` LIKE '%.pam') OR (`assets`.`filename` LIKE '%.svg')) AND (`elements_sites`.`siteId`='1') AND (`content`.`siteId`='1') AND ((`content`.`field_imageColor` IS NULL) OR (`content`.`field_imageColor`='')) AND (`elements`.`id`=3299) AND (`elements`.`archived`=FALSE) AND (`elements`.`dateDeleted` IS NULL) AND (`elements_sites`.`enabled`=TRUE)
> ORDER BY `elements`.`dateCreated` DESC) `subquery`
> INNER JOIN `assets` `assets` ON `assets`.`id` = `subquery`.`elementsId`
> INNER JOIN `volumefolders` `volumeFolders` ON `assets`.`folderId` = `volumeFolders`.`id`
> INNER JOIN `elements` `elements` ON `elements`.`id` = `subquery`.`elementsId`
> INNER JOIN `elements_sites` `elements_sites` ON `elements_sites`.`id` = `subquery`.`elementsSitesId`
> INNER JOIN `content` `content` ON `content`.`id` = `subquery`.`contentId`
> ORDER BY `elements`.`dateCreated` DESC
> 2019-03-19 10:04:57 [-][-][-][info][yii\db\Command::query] SHOW FULL COLUMNS FROM `queue`
> 2019-03-19 10:04:57 [-][-][-][profile begin][yii\db\Command::query] SHOW FULL COLUMNS FROM `queue`
> 2019-03-19 10:04:57 [-][-][-][profile end][yii\db\Command::query] SHOW FULL COLUMNS FROM `queue`
> 2019-03-19 10:04:57 [-][-][-][info][yii\db\Command::query] SELECT
>     kcu.constraint_name,
>     kcu.column_name,
>     kcu.referenced_table_name,
>     kcu.referenced_column_name
> FROM information_schema.referential_constraints AS rc
> JOIN information_schema.key_column_usage AS kcu ON
>     (
>         kcu.constraint_catalog = rc.constraint_catalog OR
>         (kcu.constraint_catalog IS NULL AND rc.constraint_catalog IS NULL)
>     ) AND
>     kcu.constraint_schema = rc.constraint_schema AND
>     kcu.constraint_name = rc.constraint_name
> WHERE rc.constraint_schema = database() AND kcu.table_schema = database()
> AND rc.table_name = 'queue' AND kcu.table_name = 'queue'
> 2019-03-19 10:04:57 [-][-][-][profile begin][yii\db\Command::query] SELECT
>     kcu.constraint_name,
>     kcu.column_name,
>     kcu.referenced_table_name,
>     kcu.referenced_column_name
> FROM information_schema.referential_constraints AS rc
> JOIN information_schema.key_column_usage AS kcu ON
>     (
>         kcu.constraint_catalog = rc.constraint_catalog OR
>         (kcu.constraint_catalog IS NULL AND rc.constraint_catalog IS NULL)
>     ) AND
>     kcu.constraint_schema = rc.constraint_schema AND
>     kcu.constraint_name = rc.constraint_name
> WHERE rc.constraint_schema = database() AND kcu.table_schema = database()
> AND rc.table_name = 'queue' AND kcu.table_name = 'queue'
> 2019-03-19 10:04:57 [-][-][-][profile end][yii\db\Command::query] SELECT
>     kcu.constraint_name,
>     kcu.column_name,
>     kcu.referenced_table_name,
>     kcu.referenced_column_name
> FROM information_schema.referential_constraints AS rc
> JOIN information_schema.key_column_usage AS kcu ON
>     (
>         kcu.constraint_catalog = rc.constraint_catalog OR
>         (kcu.constraint_catalog IS NULL AND rc.constraint_catalog IS NULL)
>     ) AND
>     kcu.constraint_schema = rc.constraint_schema AND
>     kcu.constraint_name = rc.constraint_name
> WHERE rc.constraint_schema = database() AND kcu.table_schema = database()
> AND rc.table_name = 'queue' AND kcu.table_name = 'queue'
> 2019-03-19 10:04:57 [-][-][-][info][yii\db\Command::query] SELECT
>     kcu.constraint_name,
>     kcu.column_name,
>     kcu.referenced_table_name,
>     kcu.referenced_column_name,
>     rc.UPDATE_RULE,
>     rc.DELETE_RULE
> FROM information_schema.referential_constraints AS rc
> JOIN information_schema.key_column_usage AS kcu ON
>     (
>         kcu.constraint_catalog = rc.constraint_catalog OR
>         (kcu.constraint_catalog IS NULL AND rc.constraint_catalog IS NULL)
>     ) AND
>     kcu.constraint_schema = rc.constraint_schema AND
>     kcu.constraint_name = rc.constraint_name
> WHERE rc.constraint_schema = database() AND kcu.table_schema = database()
> AND rc.table_name = 'queue' AND kcu.table_name = 'queue'
> 2019-03-19 10:04:57 [-][-][-][profile begin][yii\db\Command::query] SELECT
>     kcu.constraint_name,
>     kcu.column_name,
>     kcu.referenced_table_name,
>     kcu.referenced_column_name,
>     rc.UPDATE_RULE,
>     rc.DELETE_RULE
> FROM information_schema.referential_constraints AS rc
> JOIN information_schema.key_column_usage AS kcu ON
>     (
>         kcu.constraint_catalog = rc.constraint_catalog OR
>         (kcu.constraint_catalog IS NULL AND rc.constraint_catalog IS NULL)
>     ) AND
>     kcu.constraint_schema = rc.constraint_schema AND
>     kcu.constraint_name = rc.constraint_name
> WHERE rc.constraint_schema = database() AND kcu.table_schema = database()
> AND rc.table_name = 'queue' AND kcu.table_name = 'queue'
> 2019-03-19 10:04:57 [-][-][-][profile end][yii\db\Command::query] SELECT
>     kcu.constraint_name,
>     kcu.column_name,
>     kcu.referenced_table_name,
>     kcu.referenced_column_name,
>     rc.UPDATE_RULE,
>     rc.DELETE_RULE
> FROM information_schema.referential_constraints AS rc
> JOIN information_schema.key_column_usage AS kcu ON
>     (
>         kcu.constraint_catalog = rc.constraint_catalog OR
>         (kcu.constraint_catalog IS NULL AND rc.constraint_catalog IS NULL)
>     ) AND
>     kcu.constraint_schema = rc.constraint_schema AND
>     kcu.constraint_name = rc.constraint_name
> WHERE rc.constraint_schema = database() AND kcu.table_schema = database()
> AND rc.table_name = 'queue' AND kcu.table_name = 'queue'
> 2019-03-19 10:04:57 [-][-][-][info][yii\db\Command::execute] UPDATE `queue` SET `progress`=100, `timeUpdated`=1552986297 WHERE `id`='524'
> 2019-03-19 10:04:57 [-][-][-][profile begin][yii\db\Command::execute] UPDATE `queue` SET `progress`=100, `timeUpdated`=1552986297 WHERE `id`='524'
> 2019-03-19 10:04:57 [-][-][-][profile end][yii\db\Command::execute] UPDATE `queue` SET `progress`=100, `timeUpdated`=1552986297 WHERE `id`='524'
> 2019-03-19 10:04:57 [-][-][-][info][yii\db\Command::query] SELECT `id`, `type`, `uid`
> FROM `fieldlayouts`
> WHERE (`dateDeleted` IS NULL) AND (`id`=1)
> LIMIT 1
> 2019-03-19 10:04:57 [-][-][-][profile begin][yii\db\Command::query] SELECT `id`, `type`, `uid`
> FROM `fieldlayouts`
> WHERE (`dateDeleted` IS NULL) AND (`id`=1)
> LIMIT 1
> 2019-03-19 10:04:57 [-][-][-][profile end][yii\db\Command::query] SELECT `id`, `type`, `uid`
> FROM `fieldlayouts`
> WHERE (`dateDeleted` IS NULL) AND (`id`=1)
> LIMIT 1
> 2019-03-19 10:04:57 [-][-][-][info][yii\db\Command::query] SELECT `fields`.`id`, `fields`.`dateCreated`, `fields`.`dateUpdated`, `fields`.`groupId`, `fields`.`name`, `fields`.`handle`, `fields`.`context`, `fields`.`instructions`, `fields`.`translationMethod`, `fields`.`translationKeyFormat`, `fields`.`type`, `fields`.`settings`, `fields`.`uid`, `fields`.`searchable`, `flf`.`layoutId`, `flf`.`tabId`, `flf`.`required`, `flf`.`sortOrder`
> FROM `fields` `fields`
> INNER JOIN `fieldlayoutfields` `flf` ON `flf`.`fieldId` = `fields`.`id`
> INNER JOIN `fieldlayouttabs` `flt` ON `flt`.`id` = `flf`.`tabId`
> WHERE `flf`.`layoutId`=1
> ORDER BY `flt`.`sortOrder`, `flf`.`sortOrder`
> 2019-03-19 10:04:57 [-][-][-][profile begin][yii\db\Command::query] SELECT `fields`.`id`, `fields`.`dateCreated`, `fields`.`dateUpdated`, `fields`.`groupId`, `fields`.`name`, `fields`.`handle`, `fields`.`context`, `fields`.`instructions`, `fields`.`translationMethod`, `fields`.`translationKeyFormat`, `fields`.`type`, `fields`.`settings`, `fields`.`uid`, `fields`.`searchable`, `flf`.`layoutId`, `flf`.`tabId`, `flf`.`required`, `flf`.`sortOrder`
> FROM `fields` `fields`
> INNER JOIN `fieldlayoutfields` `flf` ON `flf`.`fieldId` = `fields`.`id`
> INNER JOIN `fieldlayouttabs` `flt` ON `flt`.`id` = `flf`.`tabId`
> WHERE `flf`.`layoutId`=1
> ORDER BY `flt`.`sortOrder`, `flf`.`sortOrder`
> 2019-03-19 10:04:57 [-][-][-][profile end][yii\db\Command::query] SELECT `fields`.`id`, `fields`.`dateCreated`, `fields`.`dateUpdated`, `fields`.`groupId`, `fields`.`name`, `fields`.`handle`, `fields`.`context`, `fields`.`instructions`, `fields`.`translationMethod`, `fields`.`translationKeyFormat`, `fields`.`type`, `fields`.`settings`, `fields`.`uid`, `fields`.`searchable`, `flf`.`layoutId`, `flf`.`tabId`, `flf`.`required`, `flf`.`sortOrder`
> FROM `fields` `fields`
> INNER JOIN `fieldlayoutfields` `flf` ON `flf`.`fieldId` = `fields`.`id`
> INNER JOIN `fieldlayouttabs` `flt` ON `flt`.`id` = `flf`.`tabId`
> WHERE `flf`.`layoutId`=1
> ORDER BY `flt`.`sortOrder`, `flf`.`sortOrder`
> 2019-03-19 10:04:57 [-][-][-][info][yii\db\Command::query] SELECT `id`, `parentId`, `volumeId`, `name`, `path`, `uid`
> FROM `volumefolders`
> WHERE `id`=1
> LIMIT 1
> 2019-03-19 10:04:57 [-][-][-][profile begin][yii\db\Command::query] SELECT `id`, `parentId`, `volumeId`, `name`, `path`, `uid`
> FROM `volumefolders`
> WHERE `id`=1
> LIMIT 1
> 2019-03-19 10:04:57 [-][-][-][profile end][yii\db\Command::query] SELECT `id`, `parentId`, `volumeId`, `name`, `path`, `uid`
> FROM `volumefolders`
> WHERE `id`=1
> LIMIT 1
> 2019-03-19 10:04:58 [-][-][-][error][yii\base\ErrorException:1] yii\base\ErrorException: Allowed memory size of 134217728 bytes exhausted (tried to allocate 4194304 bytes) in /***MYPATH***/league/color-extractor/src/League/ColorExtractor/ColorExtractor.php:55
> Stack trace:
> #0 [internal function]: yii\base\ErrorHandler->handleFatalError()
> #1 {main}
roelvanhintum commented 5 years ago

@EternalBlack i've added some ticks to your comment for readability.

More on topic: What kind and size of images are you processing? It can easily take a lot of memory, what would explain the error.

EternalBlack commented 5 years ago

@roelvanhintum Thanks, kinda didn't know what to do for readability.

For the example above I used a 1600 × 850, .jpg file that is merely 322KB in filesize. On our production environment we do have larger images (4k with filesize ~5mb). Don't know if this is relevant but PHP memory_limit already is at 256M (Craft System reports has everything checked green)

roelvanhintum commented 5 years ago

The error claims it can allocate 128M, maybe this is per request. I'm not sure what the exact effect is on memory, but in my experience higher resolution has more effect than KB's because php converts it to a raw format before processing it. Does raising the memory to 512M, just to test, solve the issue?

Using GD could cause more memory usage than ImageMagik (according to http://php.net/manual/en/function.imagecreatefromstring.php#92823).

I'll have to do some tests with craft-async-queue to know is going on.

EternalBlack commented 5 years ago

@roelvanhintum Thank you for the fast feedback. I just upped it to 512M and it now 98% of the time runs flawlessly (~2 out of 100 failed). According to the system check I already use ImageMagik (Image driver & version | Imagick 3.4.3 (ImageMagick 6.9.7-4).

roelvanhintum commented 5 years ago

@EternalBlack I'll do some testing today to see if i run into the same issues. with the async queue

roelvanhintum commented 5 years ago

@EternalBlack i couldn't find any problems with craft-async-queue. In 2.0.3 i did fix some volume issues, which where unstable. Hopefully this improved performance a little. Other than that, i'm afraid the problem is memory related.

EternalBlack commented 5 years ago

@roelvanhintum Thank you for the fast responses! I'll just up the memory limit and see where it goes. Seems like the async queue somewhat requires more memory than using the default queue system. Kinda odd though. :/

roelvanhintum commented 5 years ago

@EternalBlack I'm not sure either. Maybe because of the sub-processes they use for the queue.