Accumulator pattern delayed_action on fatal

We recently get a situation usign accumulator pattern to manage our FW.

If you hit a fatal error (in our case a git resource could not reach the repository) before our rule resources are executed, FATAL will run queed delayed notifications (wich all templates on accumulator pattern uses through[1]) before re-raising exception to the main level and exits the program, so all accumulator templates are written to disk with incomplete variables.

That could potentially hit on a deny of service. Is there any way to avoid this? do we have to rescue all operations to watch the exceptions? That is not much dev friendly :S

any tips?

Hi! we still suffering because this kind of weakness of the "accumulator pattern".

Once you get a FATAL on the compile phase, the configs managed by this pattern will leave partially filled (FW, Postgresql access, samba, selinux, whatever cookbook that use this pattern)

We are working on a "fix" using a handler and only reloading the service when everything has gone right, that way if we get a FATAL (because git server is offile, rpm cache corrupted or whatever..) chef will not reload the service until next successfully converge, which will fix all partial configs generated previously.

Some links we have read to understand the problem:

From that issue you will get to this two:

Any help or tips are wellcome, thanks!