tellesleandro
I have the following code running on node “a”:
defmodule Devices.Teste do
use GenServer
def start_link() do
IO.inspect(["a", self()])
GenServer.start_link(__MODULE__, [], [])
end
def a(pid) do
IO.inspect(["b", self(), pid])
GenServer.call(pid, :a)
end
@impl true
def init([]) do
IO.inspect(["c", self()])
{:ok, []}
end
@impl true
def handle_call(:a, from, state) do
IO.inspect(["d", :a, self(), from])
Process.sleep(3000)
{:reply, :xyz, state}
end
@impl true
def handle_info(x, state) do
IO.inspect(["e", x, self()])
{:noreply, state}
end
end
From a node b, I call
{:ok, pid} = :erpc.call(:"a@192.168.15.83", Devices.Teste, :start_link, [])
then, the messages
["a", #PID<0.225.0>]
["c", #PID<0.226.0>]
are printed and the call returns
{:ok, #PID<20968.226.0>}
After that, I call
:erpc.call(:"a@192.168.15.83", Devices.Teste, :a, [pid])
then, the message
["b", #PID<0.227.0>, #PID<0.226.0>]
is printed, but I get the following error:
** (exit) {:exception, {:noproc, {GenServer, :call, [#PID<20968.226.0>, :a, 5000]}}}
(kernel 8.5.4) erpc.erl:700: :erpc.call/5
iex:2: (file)
If I call
GenServer.call(pid, :a)
no messages are printed and I get the following error
** (exit) exited in: GenServer.call(#PID<20968.214.0>, :a, 5000)
** (EXIT) no process: the process is not alive or there's no process currently associated with the given name, possibly because its application isn't started
(elixir 1.15.0) lib/gen_server.ex:1074: GenServer.call/3
iex:2: (file)
What am I missing?
As long as I understand, I should use the “remote” pid that I get from the start_link function.
Trending in Questions
Hello!
Suppose you are building workflow (order / task / payment) processing system with the following requirements:
Each workflow con...
New
I’m aware of 2 such projects, are there others?
git: GitHub - team-alembic/realworld: A fullstack Phoenix LiveView application with back...
New
Hi all,
I’m working on a Phoenix project where I need to make external HTTP requests and I’m trying to choose between Req and HTTPoison....
New
How do I tell Hologram not to escape HTML when substituting into templates?
{Textile.render(@product.long_description)}
escapes the HTM...
New
Hi,
we run different LLM models across a cluster, with each node loading a configurable subset. Model-specific queues let nodes consume ...
New
Hello
I’ve been coding in Elixir for almost two years now because of my current job where we implemented Elixir in our application. But ...
New
Hi all, I’m new here and would like to hear peoples views on my Elixir/Phoenix based game-engine! :smiley:
Mutonex gamedesign was finish...
New
Other Trending Topics
Hey there,
I haven’t seen a list of useful Elixir specific skills for the popular AI tools yet so I’m starting one here with my first.
...
New
Hi everyone :waving_hand:
I wanted to share something I’ve been building — NowBlind, a random chat app designed to help people discover ...
New
I fully migrated to my own harness from Anthropic/Gemini and I think it’s time to share it. Welcome DSH, the DeepSeek Harness, fully writ...
New
Hey. Is there anyone here who creates agents in their apps? Not talking about using agents, but creating them. I’m finding it pretty diff...
New
Localize is the next generation localisation library for Elixir. Think of it as ex_cldr version 3.0. The first version will be released ...
New
(I just needed to vent somewhere and LinkedIn is full of hope, or hype, I’m not sure which exactly)
AI dream has many faces, but general...
New
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #library
- #deployment
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #elixirconf
- #channels
- #exunit
- #code-sync
- #discussion
- #podcasts
- #javascript
- #onsite
- #dialyzer
- #docker
- #authentication
- #ai
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #blog-post
- #elixirconf-us
- #ecto-query
- #elixir-ls
- #phoenix_html
- #iex
- #graphql
- #genstage
- #websockets
- #supervisor
- #advent-of-code
- #distillery
- #processes
- #security
- #elixirconf-eu
- #api
- #forms
- #hex










Showing Posts 1 to 2- Show Best Posts
- Show All (oldest first)
- Show All (newest first)
anuaralfetahe
When the
:erpccall is finished the spawned process on the remote node is terminated and it brings down the started child as well because they are linked.Consider using
startinstead ofstart_link, and this approach should resolve the issue. Unlikestart_link,startdoes not link the caller to the created processes. As a result, even after the caller terminates, the created processes remain active.There might be a more elegant solution to your problem, but I’m not fully aware of the entire context.
Be careful with ‘start’ because it can leave rogue processes in the system..
tellesleandro
startdid the trick. Thanks @anuaralfetahe.