foreman-rake reports:daily runs all reports twice
Since the update to katello 3.16 from 3.15 I have noticed that all daily reports from the rake reports:daily cron job are generated twice. For instance, I get two "Configuration Management Summary Reports". The first one contains the "Summary from 1 day ago to now", the second one immediately following contains "Summary from less than a minute ago to now".
If I run the cronjob manually, i.e. as user foreman:
$ RAILS_ENV=production FOREMAN_HOME=/usr/share/foreman /usr/sbin/foreman-rake reports:daily
the same happens.
Fixes #30670 - start dynflow client in report tasks
As reported, a single foreman-rake reports:daily in fact triggers the
rake task twice. This is caused by plugins that need to extend this (and
similar tasks) with their own logic and add other rake tasks
dependencies. For that they need to `load` our core tasks, causing the
duplication. `load` should be avoided entirely.
In this specific case though, the need was to add dynflow:client
dependecy to reports, since Katello plugin may schedule some dynflow
job as part of that. Therefore it needs client connection to dynflow.
This task does not start the executor.
Instead of asking all plugins to add such dependency if their custom
mail notification requires dynflow client, the Foreman core should offer
this by default.
The real fix needs to land in Katello, it should no longer load the core
task definition, however in order for that to be possible, this PR needs
to be merged first.
- modify the Katello in a way requiring the task does not cause
- clearing the task after it's loaded - this helps but may have other
consequences and does not solve the issue for other plugins
#2 Updated by Gerald Vogt 8 months ago
- Found in Releases 2.2.1 added
I have noticed the "Remove orphans" task which is running once a week always get into paused state. Checking the tasks view it also seems to be running twice at the same time. One of those tasks succeeds while the other gets paused eventually.