New supervisor restart strategy

Chandrashekhar Mullaparthi <>
Thu Jan 29 19:58:42 CET 2004


All,

We've encountered a fault situation in one of our services which has led us
to think of a new supervisor restart strategy.

The existing Restart types in the child spec are:

permanent: child process should always be restarted
temporary: child process should never be restarted
transient: child process should be restarted only if it terminates
abnormally

A suggestion for a new one would be:

safe_transient: child process should be restarted only if it terminates
abnormally, but should NOT be restarted if the max number of restarts has
been reached.

This will leave all other children of the supervisor and the supervisor
itself unaffected. This would only be applicable for the one_for_one restart
strategy.

This will be useful in the case where a lot of worker processes are added to
the supervision tree dynamically and one of them goes into a cyclic restart.

Thoughts?

cheers
Chandru/Sean




More information about the erlang-questions mailing list