Description
Preconditions and environment
- 2.4.8
Steps to reproduce
- Deploy 2.4.8 and setup cron jobs
- Go to Store -> Configuration -> Catalog -> Catalog -> Product Alerts Run Settings and set a schedule to run at some time about 20 minutes in the future.
- Verify in core_config_data table that the entry "crontab/default/jobs/catalog_product_alert/schedule/cron_expr" now exists
- Wait until the allotted run time.
Expected result
- No errors are reported when running cronjob
Actual result
Magento_Cron.CRITICAL: Exception: No callbacks found for cron job catalog_product_alert in /home/ubuntu/production/vendor/magento/module-cron/Observer/ProcessCronQueueObserver.php:351 Stack trace: #0 /home/ubuntu/production/vendor/magento/module-cron/Observer/ProcessCronQueueObserver.php(906): Magento\Cron\Observer\ProcessCronQueueObserver->_runJob() #1 /home/ubuntu/production/vendor/magento/module-cron/Observer/ProcessCronQueueObserver.php(867): Magento\Cron\Observer\ProcessCronQueueObserver->tryRunJob() #2 /home/ubuntu/production/vendor/magento/module-cron/Observer/ProcessCronQueueObserver.php(299): Magento\Cron\Observer\ProcessCronQueueObserver->processPendingJobs() #3 /home/ubuntu/production/vendor/magento/framework/Event/Invoker/InvokerDefault.php(88): Magento\Cron\Observer\ProcessCronQueueObserver->execute() #4 /home/ubuntu/production/vendor/magento/framework/Event/Invoker/InvokerDefault.php(74): Magento\Framework\Event\Invoker\InvokerDefault->_callObserverMethod() #5 /home/ubuntu/production/vendor/magento/framework/Event/Manager.php(65): Magento\Framework\Event\Invoker\InvokerDefault->dispatch() #6 /home/ubuntu/production/generated/code/Magento/Framework/Event/Manager/Proxy.php(105): Magento\Framework\Event\Manager->dispatch() #7 /home/ubuntu/production/vendor/magento/framework/App/Cron.php(86): Magento\Framework\Event\Manager\Proxy->dispatch() #8 /home/ubuntu/production/vendor/magento/module-cron/Console/Command/CronCommand.php(142): Magento\Framework\App\Cron->launch() #9 /home/ubuntu/production/vendor/symfony/console/Command/Command.php(326): Magento\Cron\Console\Command\CronCommand->execute() #10 /home/ubuntu/production/vendor/symfony/console/Application.php(1078): Symfony\Component\Console\Command\Command->run() #11 /home/ubuntu/production/vendor/symfony/console/Application.php(324): Symfony\Component\Console\Application->doRunCommand() #12 /home/ubuntu/production/vendor/magento/framework/Console/Cli.php(122): Symfony\Component\Console\Application->doRun() #13 /home/ubuntu/production/vendor/symfony/console/Application.php(175): Magento\Framework\Console\Cli->doRun() #14 /home/ubuntu/production/bin/magento(23): Symfony\Component\Console\Application->run() #15 {main} [] []
Additional information
This is new in 2.4.8
A quick look at the code and it would appear that the cron job name has been changed to product_alert in 2.4.8 but the path to the cronjob config has not been changed to match the new job name.
magento2/app/code/Magento/ProductAlert/etc/crontab.xml
Lines 10 to 12 in 73d7bd4
Debugging the generateSchedules code shows that an extra job is added to the jobs list with incomplete contents, with the name of "catalog_product_alert" which is causing the error.
The correct "product_alert" jobs are scheduled and run correctly, so this is just an annoyance more than anything having a failed erroneously scheduled job run every day.
Release note
erroneous "catalog_product_alert" cron jobs are no longer scheduled after "product_alert" job name change.
Triage and priority
- Severity: S0 - Affects critical data or functionality and leaves users without workaround.
- Severity: S1 - Affects critical data or functionality and forces users to employ a workaround.
- Severity: S2 - Affects non-critical data or functionality and forces users to employ a workaround.
- Severity: S3 - Affects non-critical data or functionality and does not force users to employ a workaround.
- Severity: S4 - Affects aesthetics, professional look and feel, “quality” or “usability”.
Metadata
Metadata
Assignees
Labels
Type
Projects
Status