From 1af77d45e3452130742bde5be1c5271bfd80cfbf Mon Sep 17 00:00:00 2001 From: Steven Gravell Date: Fri, 28 Oct 2011 16:31:29 +0100 Subject: fix supervisor spec for non dynamic modules a release upgrade on a vm running cowboy where any other appup includes an {update, Mod, {advanced, Extra}} instruction will hang forever due to these child specs being wrong. The gen_servers should be [Mod] and the non gen_server needs to be [] since there is no callback to handle this. --- src/cowboy_acceptors_sup.erl | 2 +- src/cowboy_listener_sup.erl | 2 +- src/cowboy_sup.erl | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/cowboy_acceptors_sup.erl b/src/cowboy_acceptors_sup.erl index 3d57610..17849a6 100644 --- a/src/cowboy_acceptors_sup.erl +++ b/src/cowboy_acceptors_sup.erl @@ -38,6 +38,6 @@ init([NbAcceptors, Transport, TransOpts, Procs = [{{acceptor, self(), N}, {cowboy_acceptor, start_link, [ LSocket, Transport, Protocol, ProtoOpts, MaxConns, ListenerPid, ReqsPid - ]}, permanent, brutal_kill, worker, dynamic} + ]}, permanent, brutal_kill, worker, []} || N <- lists:seq(1, NbAcceptors)], {ok, {{one_for_one, 10, 10}, Procs}}. diff --git a/src/cowboy_listener_sup.erl b/src/cowboy_listener_sup.erl index adf5262..aca2b0b 100644 --- a/src/cowboy_listener_sup.erl +++ b/src/cowboy_listener_sup.erl @@ -27,7 +27,7 @@ start_link(NbAcceptors, Transport, TransOpts, Protocol, ProtoOpts) -> {ok, SupPid} = supervisor:start_link(?MODULE, []), {ok, ListenerPid} = supervisor:start_child(SupPid, {cowboy_listener, {cowboy_listener, start_link, []}, - permanent, 5000, worker, dynamic}), + permanent, 5000, worker, [cowboy_listener]}), {ok, ReqsPid} = supervisor:start_child(SupPid, {cowboy_requests_sup, {cowboy_requests_sup, start_link, []}, permanent, 5000, supervisor, [cowboy_requests_sup]}), diff --git a/src/cowboy_sup.erl b/src/cowboy_sup.erl index 9c52486..34591bc 100644 --- a/src/cowboy_sup.erl +++ b/src/cowboy_sup.erl @@ -32,5 +32,5 @@ start_link() -> -spec init([]) -> {ok, {{one_for_one, 10, 10}, [{_, _, _, _, _, _}, ...]}}. init([]) -> Procs = [{cowboy_clock, {cowboy_clock, start_link, []}, - permanent, 5000, worker, dynamic}], + permanent, 5000, worker, [cowboy_clock]}], {ok, {{one_for_one, 10, 10}, Procs}}. -- cgit v1.2.3