Просмотр исходного кода

fix(broker): Fix ownership of subopt table

ieQu1 1 год назад
Родитель
Сommit
c7bc6a49a1

+ 1 - 2
apps/emqx/src/emqx_broker.erl

@@ -25,7 +25,7 @@
 -include("types.hrl").
 -include("emqx_mqtt.hrl").
 
--export([start_link/2]).
+-export([start_link/2, create_tabs/0]).
 
 %% PubSub
 -export([
@@ -104,7 +104,6 @@
 
 -spec start_link(atom(), pos_integer()) -> startlink_ret().
 start_link(Pool, Id) ->
-    ok = create_tabs(),
     gen_server:start_link(
         {local, emqx_utils:proc_name(?BROKER, Id)},
         ?MODULE,

+ 2 - 1
apps/emqx/src/emqx_broker_sup.erl

@@ -32,8 +32,9 @@ start_link() ->
 
 init([]) ->
     %% Broker pool
+    ok = emqx_broker:create_tabs(),
     PoolSize = emqx:get_config([node, broker_pool_size], emqx_vm:schedulers() * 2),
-    BrokerPool = emqx_pool_sup:spec(broker_pool_sup, [
+    BrokerPool = emqx_pool_sup:spec(broker_pool_sup, permanent, [
         broker_pool,
         hash,
         PoolSize,

+ 6 - 2
apps/emqx/src/emqx_pool_sup.erl

@@ -20,7 +20,7 @@
 
 -include("types.hrl").
 
--export([spec/1, spec/2]).
+-export([spec/1, spec/2, spec/3]).
 
 -export([
     start_link/0,
@@ -39,10 +39,14 @@ spec(Args) ->
 
 -spec spec(any(), list()) -> supervisor:child_spec().
 spec(ChildId, Args) ->
+    spec(ChildId, transient, Args).
+
+-spec spec(any(), transient | permanent | temporary, list()) -> supervisor:child_spec().
+spec(ChildId, Restart, Args) ->
     #{
         id => ChildId,
         start => {?MODULE, start_link, Args},
-        restart => transient,
+        restart => Restart,
         shutdown => infinity,
         type => supervisor,
         modules => [?MODULE]