No function clause matching Swarm.IntervalTreeClock.sum/2
- Dominant language
- Elixir
- Stars
- 1.3k
- Forks
- 110
- PR merge metrics
- No merged PRs in 30d
Description
I'm using `Swarm` in a big cluster and I'm always getting the following error in exactly one node:
```
00:34:51.845 [error] GenStateMachine Swarm.Tracker terminating
** (FunctionClauseError) no function clause matching in Swarm.IntervalTreeClock.sum/2
(swarm 3.4.0) lib/swarm/tracker/crdt.ex:140: Swarm.IntervalTreeClock.sum(1, {0, 1})
(swarm 3.4.0) lib/swarm/tracker/crdt.ex:29: Swarm.IntervalTreeClock.join/2
(swarm 3.4.0) lib/swarm/tracker/tracker.ex:1005: Swarm.Tracker.handle_replica_event/4
(stdlib 3.13) gen_statem.erl:1166: :gen_statem.loop_state_callback/11
(stdlib 3.13) proc_lib.erl:226: :proc_lib.init_p_do_apply/3
```
Basically it is attempting to join two interval tree clocks `1` and `{0, 1}`, which, apparently by definition, is undefined. The ITC `1` is coming from the `%TrackerState` which holds a `clock` with this value `1`.
Either the ITC is missing a definition for this case or the `Swarm` code is saving `1` in `%TrackerState.clock` in a wrong way.
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.