The next release where we could fit 807237 in is 1.0. It's likely to be to dangerous a change to release as a hotfix, so I propose that we create a temporary workaround that corrects the state of the DB, and so hopefully remove the symptoms of the problem.
Perhaps a simple script admins can run on the server to check (and optionally correct) the state of all incomplete recipes? So, by default it would just list all the incomplete jobs and recipe sets where all tasks are actually complete, with a command line option to tell it to propagate the low-level state to overwrite the stale data at the higher levels.
http://gerrit.beaker-project.org/#/c/1679/
I've been using this to work around the problem: session.begin() jobs = Job.query.all() for job in jobs: print "JOB: %s Status: %s" % (job.id,job.status) if not job.is_finished(): print "Updating..." job.update_status() print "Finished." session.commit()
Beaker 0.11.3 hot fix has been released.