Comments (4)
@mcesaro I need to take a look at this to see whether the issue is in Partisan, PlumDB or Erleans (our fork).
from partisan.
@mcesaro Thanks for the extra info. However, notice that since plum_db
is in your logs, you are not running just Partisan, or you running plum_db
directly? Otherwise, you are still running erleans
(plum_db is a dependency in our fork).
from partisan.
@aramallo Hi,
it's happening also on non-erlans applications:
=CRASH REPORT==== 26-Oct-2023::08:28:08.676084 ===
crasher:
initial call: partisan_plumtree_broadcast:init/1
pid: <0.18966.0>
registered_name: partisan_plumtree_broadcast
exception error: undefined function plum_db:merge/2
in function partisan_plumtree_broadcast:handle_cast/2 (/home/max/work/ska/_build/default/lib/partisan/src/partisan_plumtree_broadcast.erl, line 549)
in call from gen_server:try_handle_cast/3 (gen_server.erl, line 1103)
in call from gen_server:handle_msg/6 (gen_server.erl, line 1165)
ancestors: [partisan_sup,<0.1007.0>]
message_queue_len: 0
messages: []
links: [<0.1008.0>,<0.1019.0>]
dictionary: [{rand_seed,{#{type => exsss,next => #Fun<rand.0.65977474>,
bits => 58,uniform => #Fun<rand.1.65977474>,
uniform_n => #Fun<rand.2.65977474>,
jump => #Fun<rand.3.65977474>},
[125007732914024471|257206006587947701]}}]
trap_exit: false
status: running
heap_size: 610
stack_size: 28
reductions: 40368
neighbours:
=SUPERVISOR REPORT==== 26-Oct-2023::08:28:08.676618 ===
supervisor: {local,partisan_sup}
errorContext: child_terminated
reason: {undef,
[{plum_db,merge,
[{{{erleans_pm,registry},
{'pebble@max-a5',
{<<"01HDNAMM2S470TFV43NFD2GMNE">>,pebble}}},
[{{12,'e8a18d8a-73c7-11ee-bbf0-1d718ad5fce5@max-a5'},
2}]},
{object,
{[{{12,
'e8a18d8a-73c7-11ee-bbf0-1d718ad5fce5@max-a5'},
2,
[{'$deleted',{1698,301688,672946}}]}],
[]}}],
[]},
{partisan_plumtree_broadcast,handle_cast,2,
[{file,
"/home/max/work/ska/_build/default/lib/partisan/src/partisan_plumtree_broadcast.erl"},
{line,549}]},
{gen_server,try_handle_cast,3,
[{file,"gen_server.erl"},{line,1103}]},
{gen_server,handle_msg,6,
[{file,"gen_server.erl"},{line,1165}]},
{proc_lib,init_p_do_apply,3,
[{file,"proc_lib.erl"},{line,241}]}]}
offender: [{pid,<0.18966.0>},
{id,partisan_plumtree_broadcast},
{mfargs,{partisan_plumtree_broadcast,start_link,[]}},
{restart_type,permanent},
{significant,false},
{shutdown,5000},
{child_type,worker}]
I think I can trigger this behaviour in my laptop by suspending it on Wifi1 and waking it on Wifi2.
It seems that when there is a network change, partisan
still try to use the last known network.
Admittely not a common use case, but still it might be a nuisance. A potential workaround would be to have a function/API to signal the network change and reset all the connections; otherwise, the effect is that the running nodes are stuck in the try-to-reconnect loop, but also that new nodes cannot join the cluster.
from partisan.
@aramallo Hi, my bad. One of the servers also includes erleans
as a dependency. So, I re-checked the dependencies for all the applications; I'm not explictly using erleans
in a distributed mode as only one server is currently running erleans, but the network swtich issue now is limited to the host running erleans
with plum_db
.
from partisan.
Related Issues (20)
- rebar_erl_vsn is unmaintained HOT 3
- RPC test fails in 19.3 build HOT 1
- status, roadmap, doc? HOT 3
- partisan.cloud down HOT 7
- How to use Partisan ? HOT 10
- Review the need for the `channels` property in `node_spec()`
- Peer Service crashes when message uses an unknown causal_label
- Add options to use new `socket` module as transport
- Improve peer service concurrency (leverage channel parallelism)
- Improve concurrency HOT 1
- Improve concurrency HOT 1
- Add QUIC transport option
- Reduce the number of connections between nodes
- partisan_plumtree_broadcast server garbage collection
- Multiple interfaces peer problem HOT 7
- Exception exit for `unexpected_peer` HOT 16
- AAE keeps track of non-cluster hosts HOT 1
- Send fails in HyParView when a node is randomly selected to become passive
- `sys:get_state/1` on `partisan_gen_statem` process fails HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from partisan.