Description
Since December 2023, I've been experiencing a random issue with JBNC, here's the explanation:
I have an IRC web client with approximately 550 concurrent users during peak hours (around 9 p.m.) and about 200 in the afternoon during school hours, so on JBNC, there are around 350 users during peak hours. Here's how to reproduce this random bug; it doesn't happen every time but at least once every 24 or 48 hours. Here's how to do it:
- For example, it's 11 p.m. You start JBNC from an IRC web client, and this web client must have 2 channels on autojoin. Preferably, start it with an Android mobile phone.
- You disconnect after a minute, for example, you turn off your phone without disconnecting JBNC from the IRC server. For this, I've set the
bouncerTimeout
to 1800 seconds, which is 30 minutes; it will disconnect after 30 minutes. - So from 11 p.m. until 8 a.m., I sleep, and then I turn on my computer, let's say 5 minutes later, from Firefox, I go to the IRC web client (jbnc), and I connect. Occasionally, I find myself stuck in the status tab of my web client.
I see myself connected from an mIRC (no-jbnc) on the channels where I have autojoin with JBNC, I am present on them, but with JBNC, I am stuck on status, I am on no channel. I then typed the PASS command to connect to JBNC from an mIRC client, and indeed I see that I am not on any channel, although I am present in the channels, JBNC refuses to display the channel on mIRC and on the applet. The only way for it to work is either to restart JBNC by typing "/jbnc quit
" or I can also type "/part #channels
" and then join the 2 channels, and then it works fine again. This is a significant UX issue because I have noticed that this problem not only happens to me but also to many others, so it's losing customers. I also encountered this bug for the first time in December 2023 during a change of dedicated server, but the problem is that neither the IRC web client nor JBNC is installed on the new dedicated server. However, to try to fix this issue, in January, I migrated the IRC web client and JBNC to the new dedicated server, but this did not fix the problem. I feel like the problem comes either from:
- the web IRC client (for example, it joins the channels too quickly, I've tried both setting autojoin at raw
005
and also at the end of the MOTD) - or JBNC (I've tried to fix things related to "
gone=settimeout()
" and all that is automatic quit) - or from UnrealIRCd 6.1.1.1 (but I haven't updated it for a year and it was working fine before December); however, I activated the RPC stuff, but no idea if it could be because of that. Maybe a SASL problem too, because the irc and jbnc webclient uses it for 100% of users who have an account
Please note also that the problem does not exclusively come from leaving a space without doing anything between 11 p.m. and 8 a.m. because one day I was coding and trying to reconnect to the web IRC client (with JBNC), and I had to type "/jbnc quit
" each time, and in an hour, this freeze happened quite often, to quickly fix it, I reconnected by typing /jbnc quit
. There might be a conflict, for example, if one joins a channel and someone else joins it at the same time, causing the freeze? I'm not sure; I can't locate the bug.
I also noticed that this bug could also occur by stopping JBNC with "pm2 stop bouncer
" and then starting it again with "start
", with at least 300 people reconnecting within 10 minutes; here the bug also occurs randomly; it may not happen to me, but it probably does to other users.
This bug could be related to a connection issue, or quitting, or joining a channel, it's one of the three. I think, in my opinion, it doesn't come from quitting.
Do you have any idea where this problem might be coming from?
Have you ever experienced this bug?
Best regards.