Re: Unexpected behaviour of net_kernel

Dieter Schön <[email protected]>
Newsgroups gmane.comp.lang.erlang.general
Message-ID <[email protected]>
Hi Lorenzo,


I played around with nodes in the last days, my experiments showed 
nominal behaviour.

So, no spurious nodeup/nodedown messages for not connected nodes..

Did you read the fine print in the documentation of 
net_kernel:monitor_nodes() ?

I would suspect some kind of race condition in your code.

Do you have timestamped logs which show when a node is shut down, and 
when nodeup/down messages

arrive?


Kind regards,

Dieter


On 01.09.21 13:00, Lorenzo Cian wrote:
> Dear all,
>
> I am a beginner in Erlang and I'm working on a project.
> I am working with nodes that need to connect and disconnect frequently 
> both in "visible" and "hidden" mode.
>
> I wonder if there is a bug in net_kernel, because I observe the 
> following unexpected behaviour and I'm unable to link it to any action 
> caused by my code.
>
> What happens in the execution of my program is roughly the following:
> initial state: node A is connected (in visible mode) to node B,
>                    node D is not connected to any other node
> then:
> 1) node A disconnects from B (using net_kernel:disconnect/1)
> 2) node A connects to node D (using net_kernel:connect_node/1)
> result: somehow D receives nodeup messages and connects to both A and B
> expected behaviour: node D should connect to just A, while B should be 
> connected to no one
>
> Note that steps 1 and 2 are executed sequentially in the same function 
> so there's no way they could be concurrent.
>
> Could this be a bug in net_kernel?
> I thought that maybe, somehow A has some messages related to 
> net_kernel that hang up in a way such that when step 2 happens, node A 
> is not yet disconnected completely from B?
> Is it possible that something like that happens? If yes, how can I 
> avoid this?
>
> Even if I'm pretty confident that my code works as intended and I 
> tried to debug and check it several times, of course the other option 
> is that this could be caused by a bug in my code.
> Of course there are a lot of other processes involved that I can't 
> explain here, but let's suppose that they don't cause any interference 
> with the example.
>
> I hope someone who knows Erlang better than me can help me clarify my 
> doubts.
>
> Thank you,
> Lorenzo.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.