<div dir="ltr">Hi Tobias!<div>Thank you for the patch. We have discussed this on OTP Technical Board, and have come to the conclusion that some more investigation is needed of the potential backwards incompatibility. I have written a ticket and the job will be prioritized into our backlog. Unfortunately we won't make it before the next release (R16B02).</div>
<div><br></div><div>In order to help us a bit on the way, could you please provide some more information about your use case? You say that you are monitoring the supervisor from another process, do you mean other process than the supervisor's supervisor? If so, could you explain this architecture a bit more?</div>
<div><br></div><div>Who else will see this exit reason? - application_master? - the parent supervisors? - other?</div><div><br></div><div>Thanks again!</div><div>Regards</div><div>/siri</div><div><br></div></div><div class="gmail_extra">
<br><br><div class="gmail_quote">2013/7/4 Tobias Schlager <span dir="ltr"><<a href="mailto:Tobias.Schlager@lindenbaum.eu" target="_blank">Tobias.Schlager@lindenbaum.eu</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi,<br>
<br>
this patch changes the behaviour of supervisors to exit with a more specific reason when exiting due to a maximum restart limit hit. This is especially useful (or even necessary) to distinguish between normal and erroneous process terminations when monitoring a supervisor from another process.<br>

<br>
In the above case a supervisor would now exit with {shutdown, {reached_max_restart_intensity, Child}} where Child is whatever is available to describe the child, either a child id or in case of a simple_one_for_one supervisor the offending child's process id. The patch should not affect the OTP restart behaviour (also for cascaded supervisors) since a subclass of 'normal' exit reasons is used.<br>

<br>
I'm aware that there is some potential backward incompatibility for people that do not expect {shutdown, Reason} when monitoring a supervisor. However, the feature of exiting normally with {shutdown, Reason} has been around for quite a while now and I think this could be a sensible place to use it. Let me know what you think.<br>

<br>
The patch does include tests and updated documentation.<br>
<br>
          git fetch <a href="https://github.com/schlagert/otp.git" target="_blank">https://github.com/schlagert/otp.git</a> supervisor_shutdown_reason<br>
<br>
          <a href="https://github.com/schlagert/otp/compare/erlang:master...supervisor_shutdown_reason" target="_blank">https://github.com/schlagert/otp/compare/erlang:master...supervisor_shutdown_reason</a><br>
          <a href="https://github.com/schlagert/otp/compare/erlang:master...supervisor_shutdown_reason.patch" target="_blank">https://github.com/schlagert/otp/compare/erlang:master...supervisor_shutdown_reason.patch</a><br>

<br>
Regards<br>
Tobias<br>
_______________________________________________<br>
erlang-patches mailing list<br>
<a href="mailto:erlang-patches@erlang.org">erlang-patches@erlang.org</a><br>
<a href="http://erlang.org/mailman/listinfo/erlang-patches" target="_blank">http://erlang.org/mailman/listinfo/erlang-patches</a><br>
</blockquote></div><br></div>