taskscheduler error when using a dynamic group with a criteria on the fields plugins
Describe the bug
The taskscheduler cron throw an error when a task use a dynamic group with a criteria on a field from the fields plugin.
Here is the dynamic group with a rule an a field from the fields plugin :
As you can see the rule work and filter the search.
From what I can see in the logs, it seems that it doesn't find the key for the field during the taskscheduler cron. (Logs in Additional context)
To reproduce
- Create a dynamic group with a criteria rule on a filed from the fields plugin.
- Create a task using this dynamic group
- Activate the task
- Wait for the cron to launch the taskscheduler
Expected behavior
The taskscheduler doesn't throw an error an the actors in the task are prepared or reprepared based on the dynamic group.
Operating system
Windows
GLPI Agent version
1.7.3
GLPI version
10.0.14
GLPIInventory plugin
1.3.5
Additional context
[2024-03-11 16:25:05] glpiphplog.WARNING: *** PHP Warning (2): Undefined array key 76728 in C:\inetpub\glpi-10.0.12\src\Search.php at line 1398 Backtrace : src\Search.php:848 Search::constructAdditionalSqlForMetacriteria() ...ntory\inc\deploygroup_dynamicdata.class.php:243 Search::constructSQL() ...ntory\inc\deploygroup_dynamicdata.class.php:273 PluginGlpiinventoryDeployGroup_Dynamicdata::getDatas() ...ins\glpiinventory\inc\deploygroup.class.php:642 PluginGlpiinventoryDeployGroup_Dynamicdata::getTargetsByGroup() plugins\glpiinventory\inc\toolbox.class.php:407 PluginGlpiinventoryDeployGroup::getTargetsForGroup() plugins\glpiinventory\inc\taskview.class.php:1011 PluginGlpiinventoryToolbox->executeAsGlpiinventoryUser() plugins\glpiinventory\inc\taskview.class.php:832 PluginGlpiinventoryTaskView->getAgentsFromActors() plugins\glpiinventory\inc\task.class.php:635 PluginGlpiinventoryTaskView->prepareTaskjobs() src\CronTask.php:1027 PluginGlpiinventoryTask::cronTaskscheduler() front\cron.php:87 CronTask::launch()
[2024-03-11 16:25:05] glpiphplog.WARNING: *** PHP Warning (2): Undefined array key 76728 in C:\inetpub\glpi-10.0.12\src\Search.php at line 3944 Backtrace : src\Search.php:1403 Search::addSelect() src\Search.php:848 Search::constructAdditionalSqlForMetacriteria() ...ntory\inc\deploygroup_dynamicdata.class.php:243 Search::constructSQL() ...ntory\inc\deploygroup_dynamicdata.class.php:273 PluginGlpiinventoryDeployGroup_Dynamicdata::getDatas() ...ins\glpiinventory\inc\deploygroup.class.php:642 PluginGlpiinventoryDeployGroup_Dynamicdata::getTargetsByGroup() plugins\glpiinventory\inc\toolbox.class.php:407 PluginGlpiinventoryDeployGroup::getTargetsForGroup() plugins\glpiinventory\inc\taskview.class.php:1011 PluginGlpiinventoryToolbox->executeAsGlpiinventoryUser() plugins\glpiinventory\inc\taskview.class.php:832 PluginGlpiinventoryTaskView->getAgentsFromActors() plugins\glpiinventory\inc\task.class.php:635 PluginGlpiinventoryTaskView->prepareTaskjobs() src\CronTask.php:1027 PluginGlpiinventoryTask::cronTaskscheduler() front\cron.php:87 CronTask::launch()
[2024-03-11 16:25:05] glpiphplog.WARNING: *** PHP Warning (2): Trying to access array offset on value of type null in C:\inetpub\glpi-10.0.12\src\Search.php at line 3944 Backtrace : src\Search.php:1403 Search::addSelect() src\Search.php:848 Search::constructAdditionalSqlForMetacriteria() ...ntory\inc\deploygroup_dynamicdata.class.php:243 Search::constructSQL() ...ntory\inc\deploygroup_dynamicdata.class.php:273 PluginGlpiinventoryDeployGroup_Dynamicdata::getDatas() ...ins\glpiinventory\inc\deploygroup.class.php:642 PluginGlpiinventoryDeployGroup_Dynamicdata::getTargetsByGroup() plugins\glpiinventory\inc\toolbox.class.php:407 PluginGlpiinventoryDeployGroup::getTargetsForGroup() plugins\glpiinventory\inc\taskview.class.php:1011 PluginGlpiinventoryToolbox->executeAsGlpiinventoryUser() plugins\glpiinventory\inc\taskview.class.php:832 PluginGlpiinventoryTaskView->getAgentsFromActors() plugins\glpiinventory\inc\task.class.php:635 PluginGlpiinventoryTaskView->prepareTaskjobs() src\CronTask.php:1027 PluginGlpiinventoryTask::cronTaskscheduler() front\cron.php:87 CronTask::launch()
[2024-03-11 16:25:05] glpiphplog.WARNING: *** PHP Warning (2): Undefined array key 76728 in C:\inetpub\glpi-10.0.12\src\Search.php at line 3945 Backtrace : src\Search.php:1403 Search::addSelect() src\Search.php:848 Search::constructAdditionalSqlForMetacriteria() ...ntory\inc\deploygroup_dynamicdata.class.php:243 Search::constructSQL() ...ntory\inc\deploygroup_dynamicdata.class.php:273 PluginGlpiinventoryDeployGroup_Dynamicdata::getDatas() ...ins\glpiinventory\inc\deploygroup.class.php:642 PluginGlpiinventoryDeployGroup_Dynamicdata::getTargetsByGroup() plugins\glpiinventory\inc\toolbox.class.php:407 PluginGlpiinventoryDeployGroup::getTargetsForGroup() plugins\glpiinventory\inc\taskview.class.php:1011 PluginGlpiinventoryToolbox->executeAsGlpiinventoryUser() plugins\glpiinventory\inc\taskview.class.php:832 PluginGlpiinventoryTaskView->getAgentsFromActors() plugins\glpiinventory\inc\task.class.php:635 PluginGlpiinventoryTaskView->prepareTaskjobs() src\CronTask.php:1027 PluginGlpiinventoryTask::cronTaskscheduler() front\cron.php:87 CronTask::launch()
[2024-03-11 16:25:05] glpiphplog.WARNING: *** PHP Warning (2): Trying to access array offset on value of type null in C:\inetpub\glpi-10.0.12\src\Search.php at line 3945 Backtrace : src\Search.php:1403 Search::addSelect() src\Search.php:848 Search::constructAdditionalSqlForMetacriteria() ...ntory\inc\deploygroup_dynamicdata.class.php:243 Search::constructSQL() ...ntory\inc\deploygroup_dynamicdata.class.php:273 PluginGlpiinventoryDeployGroup_Dynamicdata::getDatas() ...ins\glpiinventory\inc\deploygroup.class.php:642 PluginGlpiinventoryDeployGroup_Dynamicdata::getTargetsByGroup() plugins\glpiinventory\inc\toolbox.class.php:407 PluginGlpiinventoryDeployGroup::getTargetsForGroup() plugins\glpiinventory\inc\taskview.class.php:1011 PluginGlpiinventoryToolbox->executeAsGlpiinventoryUser() plugins\glpiinventory\inc\taskview.class.php:832 PluginGlpiinventoryTaskView->getAgentsFromActors() plugins\glpiinventory\inc\task.class.php:635 PluginGlpiinventoryTaskView->prepareTaskjobs() src\CronTask.php:1027 PluginGlpiinventoryTask::cronTaskscheduler() front\cron.php:87 CronTask::launch()
[2024-03-11 16:25:05] glpiphplog.WARNING: *** PHP Warning (2): Undefined array key 76728 in C:\inetpub\glpi-10.0.12\src\Search.php at line 3955 Backtrace : src\Search.php:1403 Search::addSelect() src\Search.php:848 Search::constructAdditionalSqlForMetacriteria() ...ntory\inc\deploygroup_dynamicdata.class.php:243 Search::constructSQL() ...ntory\inc\deploygroup_dynamicdata.class.php:273 PluginGlpiinventoryDeployGroup_Dynamicdata::getDatas() ...ins\glpiinventory\inc\deploygroup.class.php:642 PluginGlpiinventoryDeployGroup_Dynamicdata::getTargetsByGroup() plugins\glpiinventory\inc\toolbox.class.php:407 PluginGlpiinventoryDeployGroup::getTargetsForGroup() plugins\glpiinventory\inc\taskview.class.php:1011 PluginGlpiinventoryToolbox->executeAsGlpiinventoryUser() plugins\glpiinventory\inc\taskview.class.php:832 PluginGlpiinventoryTaskView->getAgentsFromActors() plugins\glpiinventory\inc\task.class.php:635 PluginGlpiinventoryTaskView->prepareTaskjobs() src\CronTask.php:1027 PluginGlpiinventoryTask::cronTaskscheduler() front\cron.php:87 CronTask::launch()
[2024-03-11 16:25:05] glpiphplog.WARNING: *** PHP Warning (2): Trying to access array offset on value of type null in C:\inetpub\glpi-10.0.12\src\Search.php at line 3955 Backtrace : src\Search.php:1403 Search::addSelect() src\Search.php:848 Search::constructAdditionalSqlForMetacriteria() ...ntory\inc\deploygroup_dynamicdata.class.php:243 Search::constructSQL() ...ntory\inc\deploygroup_dynamicdata.class.php:273 PluginGlpiinventoryDeployGroup_Dynamicdata::getDatas() ...ins\glpiinventory\inc\deploygroup.class.php:642 PluginGlpiinventoryDeployGroup_Dynamicdata::getTargetsByGroup() plugins\glpiinventory\inc\toolbox.class.php:407 PluginGlpiinventoryDeployGroup::getTargetsForGroup() plugins\glpiinventory\inc\taskview.class.php:1011 PluginGlpiinventoryToolbox->executeAsGlpiinventoryUser() plugins\glpiinventory\inc\taskview.class.php:832 PluginGlpiinventoryTaskView->getAgentsFromActors() plugins\glpiinventory\inc\task.class.php:635 PluginGlpiinventoryTaskView->prepareTaskjobs() src\CronTask.php:1027 PluginGlpiinventoryTask::cronTaskscheduler() front\cron.php:87 CronTask::launch()
[2024-03-11 16:25:05] glpiphplog.WARNING: *** PHP Warning (2): Undefined array key 76728 in C:\inetpub\glpi-10.0.12\src\Search.php at line 3956 Backtrace : src\Search.php:1403 Search::addSelect() src\Search.php:848 Search::constructAdditionalSqlForMetacriteria() ...ntory\inc\deploygroup_dynamicdata.class.php:243 Search::constructSQL() ...ntory\inc\deploygroup_dynamicdata.class.php:273 PluginGlpiinventoryDeployGroup_Dynamicdata::getDatas() ...ins\glpiinventory\inc\deploygroup.class.php:642 PluginGlpiinventoryDeployGroup_Dynamicdata::getTargetsByGroup() plugins\glpiinventory\inc\toolbox.class.php:407 PluginGlpiinventoryDeployGroup::getTargetsForGroup() plugins\glpiinventory\inc\taskview.class.php:1011 PluginGlpiinventoryToolbox->executeAsGlpiinventoryUser() plugins\glpiinventory\inc\taskview.class.php:832 PluginGlpiinventoryTaskView->getAgentsFromActors() plugins\glpiinventory\inc\task.class.php:635 PluginGlpiinventoryTaskView->prepareTaskjobs() src\CronTask.php:1027 PluginGlpiinventoryTask::cronTaskscheduler() front\cron.php:87 CronTask::launch()
[2024-03-11 16:25:05] glpiphplog.WARNING: *** PHP Warning (2): Trying to access array offset on value of type null in C:\inetpub\glpi-10.0.12\src\Search.php at line 3956 Backtrace : src\Search.php:1403 Search::addSelect() src\Search.php:848 Search::constructAdditionalSqlForMetacriteria() ...ntory\inc\deploygroup_dynamicdata.class.php:243 Search::constructSQL() ...ntory\inc\deploygroup_dynamicdata.class.php:273 PluginGlpiinventoryDeployGroup_Dynamicdata::getDatas() ...ins\glpiinventory\inc\deploygroup.class.php:642 PluginGlpiinventoryDeployGroup_Dynamicdata::getTargetsByGroup() plugins\glpiinventory\inc\toolbox.class.php:407 PluginGlpiinventoryDeployGroup::getTargetsForGroup() plugins\glpiinventory\inc\taskview.class.php:1011 PluginGlpiinventoryToolbox->executeAsGlpiinventoryUser() plugins\glpiinventory\inc\taskview.class.php:832 PluginGlpiinventoryTaskView->getAgentsFromActors() plugins\glpiinventory\inc\task.class.php:635 PluginGlpiinventoryTaskView->prepareTaskjobs() src\CronTask.php:1027 PluginGlpiinventoryTask::cronTaskscheduler() front\cron.php:87 CronTask::launch()
[2024-03-11 16:25:05] glpiphplog.WARNING: *** PHP Warning (2): Undefined array key 76728 in C:\inetpub\glpi-10.0.12\src\Search.php at line 3964 Backtrace : src\Search.php:1403 Search::addSelect() src\Search.php:848 Search::constructAdditionalSqlForMetacriteria() ...ntory\inc\deploygroup_dynamicdata.class.php:243 Search::constructSQL() ...ntory\inc\deploygroup_dynamicdata.class.php:273 PluginGlpiinventoryDeployGroup_Dynamicdata::getDatas() ...ins\glpiinventory\inc\deploygroup.class.php:642 PluginGlpiinventoryDeployGroup_Dynamicdata::getTargetsByGroup() plugins\glpiinventory\inc\toolbox.class.php:407 PluginGlpiinventoryDeployGroup::getTargetsForGroup() plugins\glpiinventory\inc\taskview.class.php:1011 PluginGlpiinventoryToolbox->executeAsGlpiinventoryUser() plugins\glpiinventory\inc\taskview.class.php:832 PluginGlpiinventoryTaskView->getAgentsFromActors() plugins\glpiinventory\inc\task.class.php:635 PluginGlpiinventoryTaskView->prepareTaskjobs() src\CronTask.php:1027 PluginGlpiinventoryTask::cronTaskscheduler() front\cron.php:87 CronTask::launch()
[2024-03-11 16:25:05] glpiphplog.WARNING: *** PHP Warning (2): Trying to access array offset on value of type null in C:\inetpub\glpi-10.0.12\src\Search.php at line 3964 Backtrace : src\Search.php:1403 Search::addSelect() src\Search.php:848 Search::constructAdditionalSqlForMetacriteria() ...ntory\inc\deploygroup_dynamicdata.class.php:243 Search::constructSQL() ...ntory\inc\deploygroup_dynamicdata.class.php:273 PluginGlpiinventoryDeployGroup_Dynamicdata::getDatas() ...ins\glpiinventory\inc\deploygroup.class.php:642 PluginGlpiinventoryDeployGroup_Dynamicdata::getTargetsByGroup() plugins\glpiinventory\inc\toolbox.class.php:407 PluginGlpiinventoryDeployGroup::getTargetsForGroup() plugins\glpiinventory\inc\taskview.class.php:1011 PluginGlpiinventoryToolbox->executeAsGlpiinventoryUser() plugins\glpiinventory\inc\taskview.class.php:832 PluginGlpiinventoryTaskView->getAgentsFromActors() plugins\glpiinventory\inc\task.class.php:635 PluginGlpiinventoryTaskView->prepareTaskjobs() src\CronTask.php:1027 PluginGlpiinventoryTask::cronTaskscheduler() front\cron.php:87 CronTask::launch()
[2024-03-11 16:25:05] glpiphplog.WARNING: *** PHP Warning (2): Trying to access array offset on value of type null in C:\inetpub\glpi-10.0.12\src\Search.php at line 1414 Backtrace : src\Search.php:848 Search::constructAdditionalSqlForMetacriteria() ...ntory\inc\deploygroup_dynamicdata.class.php:243 Search::constructSQL() ...ntory\inc\deploygroup_dynamicdata.class.php:273 PluginGlpiinventoryDeployGroup_Dynamicdata::getDatas() ...ins\glpiinventory\inc\deploygroup.class.php:642 PluginGlpiinventoryDeployGroup_Dynamicdata::getTargetsByGroup() plugins\glpiinventory\inc\toolbox.class.php:407 PluginGlpiinventoryDeployGroup::getTargetsForGroup() plugins\glpiinventory\inc\taskview.class.php:1011 PluginGlpiinventoryToolbox->executeAsGlpiinventoryUser() plugins\glpiinventory\inc\taskview.class.php:832 PluginGlpiinventoryTaskView->getAgentsFromActors() plugins\glpiinventory\inc\task.class.php:635 PluginGlpiinventoryTaskView->prepareTaskjobs() src\CronTask.php:1027 PluginGlpiinventoryTask::cronTaskscheduler() front\cron.php:87 CronTask::launch()
[2024-03-11 16:25:05] glpiphplog.CRITICAL: *** Uncaught Exception TypeError: Search::computeComplexJoinID(): Argument #1 ($joinparams) must be of type array, null given, called in C:\inetpub\glpi-10.0.12\src\Search.php on line 6213 in C:\inetpub\glpi-10.0.12\src\Search.php at line 9147 Backtrace : src\Search.php:6213 Search::computeComplexJoinID() src\Search.php:1410 Search::addMetaLeftJoin() src\Search.php:848 Search::constructAdditionalSqlForMetacriteria() ...ntory\inc\deploygroup_dynamicdata.class.php:243 Search::constructSQL() ...ntory\inc\deploygroup_dynamicdata.class.php:273 PluginGlpiinventoryDeployGroup_Dynamicdata::getDatas() ...ins\glpiinventory\inc\deploygroup.class.php:642 PluginGlpiinventoryDeployGroup_Dynamicdata::getTargetsByGroup() plugins\glpiinventory\inc\toolbox.class.php:407 PluginGlpiinventoryDeployGroup::getTargetsForGroup() plugins\glpiinventory\inc\taskview.class.php:1011 PluginGlpiinventoryToolbox->executeAsGlpiinventoryUser() plugins\glpiinventory\inc\taskview.class.php:832 PluginGlpiinventoryTaskView->getAgentsFromActors() plugins\glpiinventory\inc\task.class.php:635 PluginGlpiinventoryTaskView->prepareTaskjobs() src\CronTask.php:1027 PluginGlpiinventoryTask::cronTaskscheduler() front\cron.php:87 CronTask::launch()
Hi @JulienRemi
can you try this ?
https://github.com/pluginsGLPI/fields/pull/772
Hi,
Still the same errors with this Fix.
you can empty the GLPI cache and try again
php bin/console cache:clear
Still not working
Hello,
This issue hasn't seen any activity for a while. To keep the tracker clean, we're closing it for now.
Please consider testing again with the latest version of the plugin. If the problem persists, feel free to reopen the issue or open a new one with updated details.
Thanks for your understanding!