<div dir="ltr">Hello Nico,<br><div class="gmail_extra"><br><div class="gmail_quote">On Sat, Jul 11, 2015 at 2:33 PM, Nico Kruber <span dir="ltr"><<a href="mailto:nico.kruber@gmail.com" target="_blank">nico.kruber@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi,<br>
I'm having trouble with supervisor:do_terminate/2 in both, Erlang 18.0.1 and<br>
18.0.2 which I haven't seen with earlier versions so far. I currently do not<br>
have a minimal use case but will try to come up with something soon.<br></blockquote><div><br></div><div>Would be great if you could manage that. Minimal examples are always much easier to work with.</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
I'm using Scalaris and inside a single process, I'm starting its services<br>
(multiple processes in a supervisor tree) and stopping them again in a loop.<br>
Sometimes, although very rarely, stopping the services seems to hang. When I<br>
send the beam process a SIGUSR1 I can always see two processes being in<br>
"Running" state:<br>
1) a supervisor in supervisor:do_terminate/2 (any of the present supervisors -<br>
not always the same!)<br>
2) a child/worker of this supervisor handling a message (or at least, so it<br>
seems)<br>
<br>
Their stacktraces seem inconclusive, please find an example of the two<br>
processes from the crashdump_viewer below.<br></blockquote><div><br></div><div>Are the stack traces always the same for the supervisor? i.e. it is Running in do_terminate? Since there is a receive in do_terminate, if it is stuck I would have expected it to be in the Waiting state. But if it is Running and hanging, it could point to some kind of live lock. </div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Is there any known problem/change in Erlang 18 that could have caused this?<br></blockquote><div><br></div><div>There are changes in supervisor for 18 (the introduction of maps as child specs), but it *should* not cause any problems like these.</div><div><br></div><div>A smaller example demonstrating what is going wrong for you would help a lot in trying to understand what is going on.</div><div><br></div><div>Lukas</div></div></div></div>