Restarting registered processes

Michal Ptaszek <>
Mon Jun 7 10:45:17 CEST 2010


Hi,

I was wondering what is the best way to handle the following
situation.

There is an application with main app's supervisor, under which 
we have additional sup (let's call it SUP), that has ~100 children, 
each one of them is a registered process (for now assume it is 
necessary to have them all registered). 

In the test scenario, we kill SUP and expect the main app supervisor
to restart it. Of course, when SUP dies it sends exit signals to 
all its children which should die as well (they do not have 
trap_exit flag set). As soon as they exit, their references should
be removed from the registered processes table. 

Unfortunately it turns out that SUP is restarted before all the 
children from previous epoch manage to shut down (process the exit 
signal). Because of that new children get badarg when they try to
register themselves, SUP restarts again and again, until it reaches 
the max_restart_intensity: then whole application collapses.

Do you have any idea how to solve this problem?

I will be grateful for any hint. 

Best regards,
Michal Ptaszek 
---------------------------------------------------

---------------------------------------------------

WE'VE CHANGED NAMES!

Since January 1st 2010 Erlang Training and Consulting Ltd. has become ERLANG SOLUTIONS LTD.

www.erlang-solutions.com



More information about the erlang-questions mailing list