Skip to content

Commit 0e4fa0b

Browse files
committed
fix: include the hostname in calls using the project node name
1 parent 39165f8 commit 0e4fa0b

File tree

5 files changed

+20
-27
lines changed

5 files changed

+20
-27
lines changed

apps/expert/lib/expert/engine_api.ex

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ defmodule Expert.EngineApi do
1313

1414
def call(%Project{} = project, m, f, a \\ []) do
1515
project
16-
|> Project.node_name()
16+
|> Project.node()
1717
|> :erpc.call(m, f, a)
1818
end
1919

apps/expert/lib/expert/engine_node.ex

Lines changed: 12 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ defmodule Expert.EngineNode do
4141
state.cookie,
4242
"--no-halt",
4343
"-e",
44-
"Node.connect(#{this_node}) |> dbg(); IO.puts(\"ok\")"
44+
"Node.connect(#{this_node}); IO.puts(\"ok\")"
4545
| path_append_arguments(paths)
4646
]
4747

@@ -52,7 +52,6 @@ defmodule Expert.EngineNode do
5252
{:error, :no_elixir}
5353

5454
port ->
55-
dbg(port)
5655
state = %{state | port: port, started_by: from}
5756
{:ok, state}
5857
end
@@ -69,10 +68,7 @@ defmodule Expert.EngineNode do
6968
end
7069

7170
def on_nodeup(%__MODULE__{} = state, node_name) 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
71+
if String.starts_with?(to_string(node_name), to_string(Project.node_name(state.project))) do
7672
{pid, _ref} = state.started_by
7773
Process.monitor(pid)
7874
GenServer.reply(state.started_by, :ok)
@@ -84,7 +80,7 @@ defmodule Expert.EngineNode do
8480
end
8581

8682
def on_nodedown(%__MODULE__{} = state, node_name) do
87-
if node_name == Project.node_name(state.project) do
83+
if node_name == Project.node(state.project) do
8884
maybe_reply_to_stopper(state)
8985
{:shutdown, %{state | status: :stopped}}
9086
else
@@ -115,7 +111,7 @@ defmodule Expert.EngineNode do
115111

116112
defp project_rpc(%__MODULE__{} = state, module, function, args \\ []) do
117113
state.project
118-
|> Project.node_name()
114+
|> Project.node()
119115
|> :rpc.call(module, function, args)
120116
end
121117
end
@@ -127,26 +123,22 @@ defmodule Expert.EngineNode do
127123
def start(project) do
128124
start_net_kernel(project)
129125

130-
node_name = Project.node_name(project)
131126
bootstrap_args = [project, Document.Store.entropy(), all_app_configs()]
132127

133-
dbg(node_name)
128+
node = Project.node(project)
134129

135130
with {:ok, node_pid} <- EngineSupervisor.start_project_node(project),
136131
{:ok, glob_paths} <- glob_paths(project),
137132
:ok <- start_node(project, glob_paths),
138-
dbg(Node.ping(node_name)),
139-
dbg(Node.list(:hidden)),
140-
:ok <- :rpc.call(node_name, Engine.Bootstrap, :init, bootstrap_args) |> dbg(),
141-
:ok <- ensure_apps_started(node_name) do
142-
{:ok, node_name, node_pid}
133+
:ok <- :rpc.call(node, Engine.Bootstrap, :init, bootstrap_args),
134+
:ok <- ensure_apps_started(node) do
135+
{:ok, node, node_pid}
143136
end
144-
|> dbg()
145137
end
146138

147139
defp start_net_kernel(%Project{} = project) do
148140
manager = Project.manager_node_name(project)
149-
Node.start(manager, :shortnames) |> dbg()
141+
Node.start(manager, :shortnames)
150142
end
151143

152144
defp ensure_apps_started(node) do
@@ -215,7 +207,6 @@ defmodule Expert.EngineNode do
215207
launcher = Expert.Port.path()
216208

217209
GenLSP.info(lsp, "Finding or building engine for project #{project_name}")
218-
dbg("building engine")
219210

220211
with_progress(project, "Building engine for #{project_name}", fn ->
221212
port =
@@ -275,14 +266,13 @@ defmodule Expert.EngineNode do
275266

276267
def start_link(%Project{} = project) do
277268
state = State.new(project)
278-
dbg(state)
279-
GenServer.start_link(__MODULE__, state, name: name(project)) |> dbg()
269+
GenServer.start_link(__MODULE__, state, name: name(project))
280270
end
281271

282272
@start_timeout 30_000
283273

284274
defp start_node(project, paths) do
285-
project |> name() |> GenServer.call({:start, paths}, @start_timeout + 500) |> dbg()
275+
project |> name() |> GenServer.call({:start, paths}, @start_timeout + 500)
286276
end
287277

288278
@impl GenServer
@@ -296,11 +286,8 @@ defmodule Expert.EngineNode do
296286
:ok = :net_kernel.monitor_nodes(true, node_type: :all)
297287
Process.send_after(self(), :maybe_start_timeout, @start_timeout)
298288

299-
dbg("hi")
300-
301289
case State.start(state, paths, from) do
302290
{:ok, state} ->
303-
dbg(state)
304291
{:noreply, state}
305292

306293
{:error, :no_elixir} ->
@@ -368,6 +355,7 @@ defmodule Expert.EngineNode do
368355

369356
@impl true
370357
def handle_info({_port, {:data, message}}, %State{} = state) do
358+
Logger.debug("Received port message: #{inspect(message)}")
371359
dbg(message)
372360
{:noreply, state}
373361
end

apps/expert/test/expert/project/node_test.exs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ defmodule Expert.Project.NodeTest do
4242
end
4343

4444
test "the node restarts when the supervisor pid is killed", %{project: project} do
45-
node_name = EngineNode.node_name(project)
45+
node_name = Forge.Project.node(project)
4646
supervisor_pid = EngineApi.call(project, Process, :whereis, [Engine.Supervisor])
4747

4848
assert is_pid(supervisor_pid)

apps/forge/lib/forge/project.ex

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,11 @@ defmodule Forge.Project do
7979
:"project-#{name(project)}-#{entropy(project)}"
8080
end
8181

82+
def node(%__MODULE__{} = project) do
83+
{:ok, hostname} = :inet.gethostname()
84+
:"#{node_name(project)}@#{hostname}"
85+
end
86+
8287
def entropy(%__MODULE__{} = project) do
8388
project.entropy
8489
end

apps/forge/lib/test/document_support.ex

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ defmodule Forge.Test.DocumentSupport do
33
use ExUnit.CaseTemplate
44

55
setup do
6-
{:ok, _store} = start_supervised(Document.Store)
6+
start_supervised(Document.Store)
77
:ok
88
end
99

0 commit comments

Comments
 (0)