matrix-org / matrix-appservice-irc

Node.js IRC bridge for Matrix
Apache License 2.0
465 stars 151 forks source link

FN: Users still getting kicked out from rooms when appservice hiccup #909

Closed olmari closed 4 years ago

olmari commented 4 years ago

You were kicked from Lahti Hacklab by @appservice-irc:matrix.org Reason: IRC connection failure

is still occurring on for example yesterday when matrix.org appservice-irc to freenode had some hiccup... Now hiccups themselves are unfortunate but unavoidable, users shouldn't still keep getting kicked out from matrix-room every time appservice-irc throws an tantrum, no matter what idle-kick deals matrix-org and Freenode might have.

eccPycWvHuiPQIimJRPehFmN

Half-Shot commented 4 years ago

I agree that innocent users shouldn't find themselves kicked from rooms like this, however there are technical reasons for doing so:

The kick is the result of catch-all piece of logic that will kick a user from all bridged rooms if they fail to make an IRC connection at all. As stated many, many times: we are strictly following the rules here when we say that the IRC bridge is not allowed to allow users into rooms who are not bridged across. It's a harsh rule, but it has a purpose. To re-iterate, the idle kicker people are also complaining about is the only solution we have to this. We are over the limit at this point if we counted all users in all rooms, and we have to kick people in order to keep under the limit.

Sadly because people set the bridge bot to low powerlevels in their rooms in order to avoid the kicks, they impact our ability to do this and so idlers end up being reconnected on startup, because they were not kicked. I've been reaching out to these people as much as I can, but it's a manual job.

Honestly the one true way to solve this would be for FN to give us more connection slots, but so far this hasn't happened.

The situation will remain until less people use the bridge, or we end up with more slots. In the last few months, we've ended up with more users and a static amount of slots.