Skip to content

Commit

Permalink
fix: do not start dependant apps lazily
Browse files Browse the repository at this point in the history
  • Loading branch information
savonarola committed Nov 6, 2023
1 parent 30ec8f7 commit 3e56ab9
Show file tree
Hide file tree
Showing 6 changed files with 68 additions and 34 deletions.
2 changes: 0 additions & 2 deletions src/client/grpc_client_sup.erl
Original file line number Diff line number Diff line change
Expand Up @@ -39,8 +39,6 @@
-spec create_channel_pool(term(), uri_string:uri_string(), options())
-> supervisor:startchild_ret().
create_channel_pool(Name, URL, Opts) ->
_ = application:ensure_all_started(grpc),
_ = application:ensure_all_started(gproc),
case uri_string:parse(URL) of
#{scheme := Scheme, host := Host, port := Port} ->
Server = {Scheme, Host, Port},
Expand Down
85 changes: 59 additions & 26 deletions src/grpc.appup.src
Original file line number Diff line number Diff line change
@@ -1,53 +1,86 @@
%% -*- mode: erlang -*-
{"0.6.11",
[{"0.6.10",
[{load_module, grpc_client, brutal_purge, soft_purge, []}]},
{"0.6.12",
[{"0.6.11",
[{load_module, grpc_client_sup, brutal_purge, soft_purge, []},
{load_module, grpc, brutal_purge, soft_purge, []}]},
{"0.6.10",
[{load_module, grpc_client, brutal_purge, soft_purge, []},
{load_module, grpc_client_sup, brutal_purge, soft_purge, []},
{load_module, grpc, brutal_purge, soft_purge, []}]},
{"0.6.9",
[{load_module, grpc_client, brutal_purge, soft_purge, []}]},
[{load_module, grpc_client, brutal_purge, soft_purge, []},
{load_module, grpc_client_sup, brutal_purge, soft_purge, []},
{load_module, grpc, brutal_purge, soft_purge, []}]},
{"0.6.8",
[{load_module, grpc_client, brutal_purge, soft_purge, []}]},
[{load_module, grpc_client, brutal_purge, soft_purge, []},
{load_module, grpc_client_sup, brutal_purge, soft_purge, []},
{load_module, grpc, brutal_purge, soft_purge, []}]},
{"0.6.7",
[{load_module, grpc_client, brutal_purge, soft_purge, []}]},
[{load_module, grpc_client, brutal_purge, soft_purge, []},
{load_module, grpc_client_sup, brutal_purge, soft_purge, []},
{load_module, grpc, brutal_purge, soft_purge, []}]},
{"0.6.6",
[{update, grpc_client, {advanced, ["0.6.6"]}}]},
[{update, grpc_client, {advanced, ["0.6.6"]}},
{load_module, grpc_client_sup, brutal_purge, soft_purge, []},
{load_module, grpc, brutal_purge, soft_purge, []}]},
{"0.6.5",
[{update, grpc_client, {advanced, ["0.6.5"]}}]},
[{update, grpc_client, {advanced, ["0.6.5"]}},
{load_module, grpc_client_sup, brutal_purge, soft_purge, []},
{load_module, grpc, brutal_purge, soft_purge, []}]},
{"0.6.4",
[{update, grpc_client, {advanced, ["0.6.4"]}},
{load_module, grpc_client_sup, brutal_purge, soft_purge, []}]},
{load_module, grpc_client_sup, brutal_purge, soft_purge, []},
{load_module, grpc, brutal_purge, soft_purge, []}]},
{"0.6.3",
[{update, grpc_client, {advanced, ["0.6.3"]}},
{load_module, grpc_client_sup, brutal_purge, soft_purge, []}]},
{load_module, grpc_client_sup, brutal_purge, soft_purge, []},
{load_module, grpc, brutal_purge, soft_purge, []}]},
{"0.6.2",
[{add_module, grpc_utils},
{update, grpc_client, {advanced, ["0.6.2"]}},
{load_module, grpc_stream, brutal_purge, soft_purge, []},
{load_module, grpc_client_sup, brutal_purge, soft_purge, []}]},
{<<".*">>, []}
],
[{"0.6.10",
[{load_module, grpc_client, brutal_purge, soft_purge, []}]},
{load_module, grpc_client_sup, brutal_purge, soft_purge, []},
{load_module, grpc, brutal_purge, soft_purge, []}]},
{<<".*">>, []}],
[{"0.6.11",
[{load_module, grpc_client_sup, brutal_purge, soft_purge, []},
{load_module, grpc, brutal_purge, soft_purge, []}]},
{"0.6.10",
[{load_module, grpc_client, brutal_purge, soft_purge, []},
{load_module, grpc_client_sup, brutal_purge, soft_purge, []},
{load_module, grpc, brutal_purge, soft_purge, []}]},
{"0.6.9",
[{load_module, grpc_client, brutal_purge, soft_purge, []}]},
[{load_module, grpc_client, brutal_purge, soft_purge, []},
{load_module, grpc_client_sup, brutal_purge, soft_purge, []},
{load_module, grpc, brutal_purge, soft_purge, []}]},
{"0.6.8",
[{load_module, grpc_client, brutal_purge, soft_purge, []}]},
[{load_module, grpc_client, brutal_purge, soft_purge, []},
{load_module, grpc_client_sup, brutal_purge, soft_purge, []},
{load_module, grpc, brutal_purge, soft_purge, []}]},
{"0.6.7",
[{load_module, grpc_client, brutal_purge, soft_purge, []}]},
[{load_module, grpc_client, brutal_purge, soft_purge, []},
{load_module, grpc_client_sup, brutal_purge, soft_purge, []},
{load_module, grpc, brutal_purge, soft_purge, []}]},
{"0.6.6",
[{update, grpc_client, {advanced, ["0.6.6"]}}]},
[{update, grpc_client, {advanced, ["0.6.6"]}},
{load_module, grpc_client_sup, brutal_purge, soft_purge, []},
{load_module, grpc, brutal_purge, soft_purge, []}]},
{"0.6.5",
[{update, grpc_client, {advanced, ["0.6.5"]}}]},
[{update, grpc_client, {advanced, ["0.6.5"]}},
{load_module, grpc_client_sup, brutal_purge, soft_purge, []},
{load_module, grpc, brutal_purge, soft_purge, []}]},
{"0.6.4",
[{update, grpc_client, {advanced, ["0.6.4"]}},
{load_module, grpc_client_sup, brutal_purge, soft_purge, []}]},
{load_module, grpc_client_sup, brutal_purge, soft_purge, []},
{load_module, grpc, brutal_purge, soft_purge, []}]},
{"0.6.3",
[{update, grpc_client, {advanced, ["0.6.3"]}},
{load_module, grpc_client_sup, brutal_purge, soft_purge, []}]},
{load_module, grpc_client_sup, brutal_purge, soft_purge, []},
{load_module, grpc, brutal_purge, soft_purge, []}]},
{"0.6.2",
[{delete_module, grpc_utils},
{update, grpc_client, {advanced, ["0.6.2"]}},
{load_module, grpc_stream, brutal_purge, soft_purge, []},
{load_module, grpc_client_sup, brutal_purge, soft_purge, []}]},
{<<".*">>, []}
]
}.
{load_module, grpc_client_sup, brutal_purge, soft_purge, []},
{load_module, grpc, brutal_purge, soft_purge, []}]},
{<<".*">>, []}]}.
2 changes: 0 additions & 2 deletions src/grpc.erl
Original file line number Diff line number Diff line change
Expand Up @@ -53,8 +53,6 @@ start_server(Name, ListenOn, Services) ->
-> {ok, pid()} | {error, term()}.
%% @doc Start a gRPC server
start_server(Name, ListenOn, Services, Options) ->
_ = application:ensure_all_started(grpc),

Services1 = enable_default_services(
proplists:get_value(enable_default_services, Options, all),
Services),
Expand Down
4 changes: 3 additions & 1 deletion test/grpc_SUITE.erl
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ groups() ->
[{http, Tests}, {https,Tests}].

init_per_group(GrpName, Cfg) ->
_ = application:ensure_all_started(grpc),
DataDir = proplists:get_value(data_dir, Cfg),
TestDir = re:replace(DataDir, "/grpc_SUITE_data", "", [{return, list}]),
CA = filename:join([TestDir, "certs", "ca.pem"]),
Expand Down Expand Up @@ -74,7 +75,8 @@ init_per_group(GrpName, Cfg) ->

end_per_group(_GrpName, _Cfg) ->
_ = grpc_client_sup:stop_channel_pool(?CHANN_NAME),
_ = grpc:stop_server(?SERVER_NAME).
_ = grpc:stop_server(?SERVER_NAME),
_ = application:stop(grpc).

%%--------------------------------------------------------------------
%% Tests
Expand Down
4 changes: 3 additions & 1 deletion test/grpc_performance_SUITE.erl
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ all() ->
[t_performance].

init_per_suite(Cfg) ->
_ = application:ensure_all_started(grpc),
Services = #{protos => [grpc_greeter_pb],
services => #{'Greeter' => greeter_svr}
},
Expand All @@ -45,7 +46,8 @@ init_per_suite(Cfg) ->

end_per_suite(_Cfg) ->
_ = grpc_client_sup:stop_channel_pool(?CHANN_NAME),
_ = grpc:stop_server(?SERVER_NAME).
_ = grpc:stop_server(?SERVER_NAME),
_ = application:stop(grpc).

%%--------------------------------------------------------------------
%% Test cases
Expand Down
5 changes: 3 additions & 2 deletions test/grpc_test2_SUITE.erl
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ all() ->
[t_deadline].

init_per_suite(Cfg) ->
_ = application:ensure_all_started(grpc),
Services = #{protos => [grpc_test_pb],
services => #{'Test' => test_svr}
},
Expand All @@ -43,10 +44,10 @@ init_per_suite(Cfg) ->
{ok, _} = grpc_client_sup:create_channel_pool(?CHANN_NAME, SvrAddr, #{}),
Cfg.

end_per_suite(Cfg) ->
end_per_suite(_Cfg) ->
_ = grpc_client_sup:stop_channel_pool(?CHANN_NAME),
_ = grpc:stop_server(?SERVER_NAME),
Cfg.
_ = application:stop(grpc).

%%--------------------------------------------------------------------
%% Tests
Expand Down

0 comments on commit 3e56ab9

Please sign in to comment.