New supervisor restart strategy

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


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

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

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.



More information about the erlang-questions mailing list