IRC: netsplits arrive as hundreds of quit lines #93

Closed
opened 2026-09-02 23:25:37 -04:00 by Salastil · 1 comment
Owner

A netsplit is recognisable - every QUIT carries the same server.a server.b message - and every established client collapses it into one line. moho draws each one, so a split on a large network fills the buffer and buries the conversation.

Related capabilities also unrequested (irc.rs:702): extended-join and account-notify (who is identified to services), chghost (a host change without a fake rejoin), echo-message (your own line confirmed by the server rather than echoed locally).

Done looks like: consecutive quits sharing a split message become one collapsible line, and the four capabilities are requested and acted on.

A netsplit is recognisable - every QUIT carries the same `server.a server.b` message - and every established client collapses it into one line. moho draws each one, so a split on a large network fills the buffer and buries the conversation. Related capabilities also unrequested (irc.rs:702): `extended-join` and `account-notify` (who is identified to services), `chghost` (a host change without a fake rejoin), `echo-message` (your own line confirmed by the server rather than echoed locally). **Done looks like:** consecutive quits sharing a split message become one collapsible line, and the four capabilities are requested and acted on.
Author
Owner

Finished, but the issue was wrong about the symptom and I should say so plainly.

Netsplits were not arriving as hundreds of quit lines. IRC produced no join, part, quit or nick lines at all — while Settings offered four switches claiming to control them. That is the real defect, and it is fixed: those lines exist now, honouring the settings that always promised them.

Netsplits are collapsed as they arrive rather than after the fact: a quit message that is two server names and nothing else is gathered for three seconds and reported once — "N people split from the network" — instead of once per person. The shape is matched conservatively (exactly two hostname-looking words, nothing else), because a quit wrongly folded into a split is a quit nobody ever sees; there is a test pinning that.

extended-join, account-notify and chghost are requested. echo-message deliberately is not: it replaces the local echo of your own message with the server's copy, and requesting it without rewriting the send path would show everything you send twice.

nobilis f4c097c, moho https://git.salastil.com/Salastil/moho/commit/0d57bd0

Finished, but the issue was wrong about the symptom and I should say so plainly. Netsplits were **not** arriving as hundreds of quit lines. IRC produced no join, part, quit or nick lines *at all* — while Settings offered four switches claiming to control them. That is the real defect, and it is fixed: those lines exist now, honouring the settings that always promised them. Netsplits are collapsed as they arrive rather than after the fact: a quit message that is two server names and nothing else is gathered for three seconds and reported once — "N people split from the network" — instead of once per person. The shape is matched conservatively (exactly two hostname-looking words, nothing else), because a quit wrongly folded into a split is a quit nobody ever sees; there is a test pinning that. `extended-join`, `account-notify` and `chghost` are requested. `echo-message` deliberately is not: it replaces the local echo of your own message with the server's copy, and requesting it without rewriting the send path would show everything you send twice. nobilis f4c097c, moho https://git.salastil.com/Salastil/moho/commit/0d57bd0
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Salastil/moho#93