@@ -35,13 +35,13 @@ defmodule Expert.EngineNode do
3535 [
3636 "--erl" ,
3737 "-start_epmd false -erl_epmd_port #{ dist_port } -dist_listen false" ,
38- "--name " ,
38+ "--sname " ,
3939 Project . node_name ( state . project ) ,
4040 "--cookie" ,
4141 state . cookie ,
4242 "--no-halt" ,
4343 "-e" ,
44- "Node.connect(#{ this_node } ); IO.puts(\" ok\" )"
44+ "Node.connect(#{ this_node } ) |> dbg() ; IO.puts(\" ok\" )"
4545 | path_append_arguments ( paths )
4646 ]
4747
@@ -52,6 +52,7 @@ defmodule Expert.EngineNode do
5252 { :error , :no_elixir }
5353
5454 port ->
55+ dbg ( port )
5556 state = % { state | port: port , started_by: from }
5657 { :ok , state }
5758 end
@@ -68,7 +69,10 @@ defmodule Expert.EngineNode do
6869 end
6970
7071 def on_nodeup ( % __MODULE__ { } = state , node_name ) do
71- if node_name == Project . node_name ( state . project ) do
72+ dbg ( node_name )
73+
74+ if String . starts_with? ( to_string ( node_name ) , to_string ( Project . node_name ( state . project ) ) )
75+ |> dbg ( ) do
7276 { pid , _ref } = state . started_by
7377 Process . monitor ( pid )
7478 GenServer . reply ( state . started_by , :ok )
@@ -126,18 +130,23 @@ defmodule Expert.EngineNode do
126130 node_name = Project . node_name ( project )
127131 bootstrap_args = [ project , Document.Store . entropy ( ) , all_app_configs ( ) ]
128132
133+ dbg ( node_name )
134+
129135 with { :ok , node_pid } <- EngineSupervisor . start_project_node ( project ) ,
130136 { :ok , glob_paths } <- glob_paths ( project ) ,
131137 :ok <- start_node ( project , glob_paths ) ,
132- :ok <- :rpc . call ( node_name , Engine.Bootstrap , :init , bootstrap_args ) ,
138+ dbg ( Node . ping ( node_name ) ) ,
139+ dbg ( Node . list ( :hidden ) ) ,
140+ :ok <- :rpc . call ( node_name , Engine.Bootstrap , :init , bootstrap_args ) |> dbg ( ) ,
133141 :ok <- ensure_apps_started ( node_name ) do
134142 { :ok , node_name , node_pid }
135143 end
144+ |> dbg ( )
136145 end
137146
138147 defp start_net_kernel ( % Project { } = project ) do
139148 manager = Project . manager_node_name ( project )
140- :net_kernel . start ( manager , % { name_domain: :longnames } )
149+ Node . start ( manager , :shortnames ) |> dbg ( )
141150 end
142151
143152 defp ensure_apps_started ( node ) do
@@ -155,7 +164,7 @@ defmodule Expert.EngineNode do
155164 [ "/**/priv" | app_globs ]
156165 end
157166
158- def glob_paths ( _ ) do
167+ defp glob_paths ( _ ) do
159168 entries =
160169 for entry <- :code . get_path ( ) ,
161170 entry_string = List . to_string ( entry ) ,
@@ -206,6 +215,7 @@ defmodule Expert.EngineNode do
206215 launcher = Expert.Port . path ( )
207216
208217 GenLSP . info ( lsp , "Finding or building engine for project #{ project_name } " )
218+ dbg ( "building engine" )
209219
210220 with_progress ( project , "Building engine for #{ project_name } " , fn ->
211221 port =
@@ -265,15 +275,14 @@ defmodule Expert.EngineNode do
265275
266276 def start_link ( % Project { } = project ) do
267277 state = State . new ( project )
268- GenServer . start_link ( __MODULE__ , state , name: name ( project ) )
278+ dbg ( state )
279+ GenServer . start_link ( __MODULE__ , state , name: name ( project ) ) |> dbg ( )
269280 end
270281
271- @ start_timeout 3_000
282+ @ start_timeout 30_000
272283
273284 defp start_node ( project , paths ) do
274- project
275- |> name ( )
276- |> GenServer . call ( { :start , paths } , @ start_timeout + 500 )
285+ project |> name ( ) |> GenServer . call ( { :start , paths } , @ start_timeout + 500 ) |> dbg ( )
277286 end
278287
279288 @ impl GenServer
@@ -287,8 +296,11 @@ defmodule Expert.EngineNode do
287296 :ok = :net_kernel . monitor_nodes ( true , node_type: :all )
288297 Process . send_after ( self ( ) , :maybe_start_timeout , @ start_timeout )
289298
299+ dbg ( "hi" )
300+
290301 case State . start ( state , paths , from ) do
291302 { :ok , state } ->
303+ dbg ( state )
292304 { :noreply , state }
293305
294306 { :error , :no_elixir } ->
@@ -355,7 +367,8 @@ defmodule Expert.EngineNode do
355367 end
356368
357369 @ impl true
358- def handle_info ( { _port , { :data , _message } } , % State { } = state ) do
370+ def handle_info ( { _port , { :data , message } } , % State { } = state ) do
371+ dbg ( message )
359372 { :noreply , state }
360373 end
361374
0 commit comments