Bug 880852

Summary: "recipe no longer has access" is not committed to the database
Product: [Retired] Beaker Reporter: Dan Callaghan <dcallagh>
Component: schedulerAssignee: Dan Callaghan <dcallagh>
Status: CLOSED CURRENTRELEASE QA Contact:
Severity: unspecified Docs Contact:
Priority: urgent    
Version: 0.10CC: asaha, dcallagh, mishin, qwan, rglasz, rmancy
Target Milestone: 0.10.3Keywords: Regression
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2012-12-03 06:56:00 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Dan Callaghan 2012-11-27 22:30:41 UTC
In beakerd's queued_recipes routine there is code to check whether a system's permissions have changed since it was originally added as a candidate for the recipe, and if so to remove it. But the transaction is not committed in that case.

This is a regression in 0.10. I broke it in commit 7e690c1e.

This will need a hot fix since any recipe which reaches that code will never progress beyond the Queued state without manual intervention.

Comment 2 Dan Callaghan 2012-11-27 22:36:40 UTC
Workaround is to delete the offending rows from system_recipe_map manually:

DELETE FROM system_recipe_map
USING system_recipe_map
INNER JOIN system
    ON system_recipe_map.system_id = system.id
WHERE system.fqdn = '<fqdn>'
    AND recipe_id IN (<id>, <id>, ...);

Comment 3 Dan Callaghan 2012-11-28 01:11:02 UTC
On Gerrit: http://gerrit.beaker-project.org/1519

Comment 4 Dan Callaghan 2012-12-03 06:56:00 UTC
Fixed in beaker-server-0.10.5-1.