ergochat / ergo

A modern IRC server (daemon/ircd) written in Go.
https://ergo.chat/
MIT License
2.26k stars 180 forks source link

fix #2113 #2116

Closed slingamn closed 9 months ago

slingamn commented 9 months ago

Persisting always-on clients was panicking if client X believed it was a member of channel Y, but channel Y didn't have a record of client X.

I'm not really satisfied with the root cause analysis here, but in principle there is no overriding mutex synchronizing these states (it would probably be a global bottleneck), so these can temporarily be out of sync. (If they are out of sync, will things eventually converge?)