Bug #19146
closedWorld invalidation can fail, when execution plans are invalid
Description
Cloned from https://bugzilla.redhat.com/show_bug.cgi?id=1390931
Description of problem:
Under some circumstances (such as manually deleting data from dynflow_execution_steps),
Version-Release number of selected component (if applicable):
How reproducible:
under special circumstances
Steps to Reproduce:
1. trigger a task
2. force kill the dynflow executor process
3. while the task is runnint, delete data from dynflow manually (CAUTION: THIS IS BY NO MEANS A RECOMMENDED WAY OF DEALING WITH TASKS - FOR REPRODUCER PURPOSES ONLY):
psql foreman
delete from foreman_tasks_locks;
delete from dynflow_steps;
delete from dynflow_actions;
exit
note we are not deleting dynflow_execution_plans and foreman_tasks_tasks
4. restart the foreman-tasks service
Actual results:
in logs, there is invalid worlds found message, where at the terminated world uuid, there is invalid worlds found {"a97cd2c2-a86b-4309-aa0c-edd7ed1c6c9f"=>"Value (NilClass) '' is not any of: Dynflow::ExecutionPlan::Steps::Abstract." The killed world is not able to recover properly.
Excpeted results:
The issue is logged, but the world is invalidated properly and the old world doesn't stay in the worlds registry (/foreman_tasks/dynflow/worlds)
Updated by Ivan Necas over 7 years ago
- Copied from Bug #17177: World invalidation can fail, when execution plans are missing added
Updated by Ivan Necas over 7 years ago
- Status changed from Assigned to Ready For Testing
- Bugzilla link set to 1390931
- Pull request https://github.com/Dynflow/dynflow/pull/227 added
Updated by Ivan Necas over 7 years ago
- Related to Bug #19147: Handle issues with loading execution_plan added
Updated by Adam Ruzicka over 7 years ago
- Status changed from Ready For Testing to Closed
Closing since github PR got merged.
Updated by Ivan Necas over 7 years ago
- Category set to Dynflow
- Translation missing: en.field_release set to 251
Updated by Lukas Pramuk over 7 years ago
- Copied to Bug #20002: ISE on /foreman_tasks/dynflow/ when some invalid plans are in place added