View Issue Details

IDProjectCategoryView StatusLast Update
0006398unrealircdpublic2024-06-07 18:06
Reporterarmyn Assigned Tosyzop  
Status closedResolutionno change required 
Product Version6.1.1.1 
Summary0006398: A bug where the channel freezes from time to time
DescriptionHi, I'm investigating a bug that occurs randomly after 8 hours without disconnecting from IRC, or immediately after the dedicated server (and IRCd) is restarted. This bug causes the auto-join channel to freeze; the mIRC channel is blocked, not displaying in tabs or the IRC web client. It's challenging to locate the bug because it involves all these software components: I connect via a web client IRC (or mIRC) to a BNC server, which in turn connects to UnrealIRCd installed on Debian 12. Sometimes there's a freeze when joining a channel, which never occurred before December 2023 when I was using CentOS instead of Debian 12.

Do you know if there's a known bug of this nature where joining a channel results in it freezing? We're clearly present in the channel, receiving messages, but it's stuck; its tab doesn't appear on mIRC or the web client. What's odd is that the BNC server is installed on a VPS dating back to 2021, and it started experiencing this issue the first day I installed UnrealIRCd on Debian 12 in mid-December 2023.

I just know that the BNC receives/sends '/who <target> %tcuhsnfdaor', that's the only thing I could consider as a possible cause for the freeze.

Do you also happen to know if there's a Linux command to check if UnrealIRCd needs a 'make clean' ?
TagsNo tags attached.
3rd party modules



2024-04-11 16:45

reporter   ~0023168

What is the name of this channel? And for the sake of printing, does it use any non-utf8 chars or unescaped important chars like '\n' or something?


2024-04-11 16:52

reporter   ~0023169

The channel only consists of letters, without accents or special characters. Personally, I only encounter this issue with one channel because I always test it with the same channel, but I will ask those who automatically join other channels to see if other channels also experience difficulty joining


2024-04-13 13:54

reporter   ~0023172

I located the bug, it doesn't come from unrealircd. It originates either from the web client IRC or BNC, or from the IRC framework. In the event listener for "join" on the IRC framework or the web client, simply add if ("#channel") return false;, and the channel freezes.


2024-04-14 20:19

reporter   ~0023173

Finally, I don't know, I manage to reproduce the bug by doing this:
- Either on IRC Framework by removing line 231, it should not be removed at connection but shortly after connection:

- Or on the BNC server, I just put a "return false" in the "join" event.

- Or on the web IRC client, similarly, I also put "return false" in the "join" event.

So by doing these three, I manage to reproduce the bug, but the bug does not occur identically because afterwards, I can connect to BNC with mIRC (without disconnecting from the IRC server first, leaving it online in the BNC), so here the blocked channels join correctly whereas with the original bug everything freezes, unable to display the channels.

I have the impression that the bug does not come from IRC Framework.
It may come from the BNC server (but it has been tested on two different dedicated servers, and very few lines have been modified since January 2023). The BNC server, even on its old dedicated server, the bug occurred.
Either it comes from the web IRC client, but I have no clue.
Or the bug comes from the new versions of NodeJS from November or December 2023.
Or the bug comes from UnrealIRCd (for example, in December, I may have activated things like exceptions on accounts, IP, and also tinkered with everything related to RPC).
Or the bug comes from the new dedicated server (Debian 12), because the first time I located the freezing bug on the channels was the first day UnrealIRCd was installed on the Debian, I turn everything on properly, the BNC server is still on its original server and there, the first startup of the UnrealIRCd server on this dedicated server, I connect and I was directly blocked, it had never done that to me before. I also found something strange on Debian 12 with UnrealIRCd, is that to do ./Config and make it's really fast on Debian 12 (maybe 2 minutes) and on the old CentOS 7.9 server, it took 5 minutes, and yet this server was more powerful than the new dedicated server (and also more expensive, €90 more per month for old server).
Either the bug is related to the new dedicated server where I use Apache2 and it may be misconfigured but I don't have the impression.
Or my dedicated server has a problem with "blocking" things, maybe an IPv4 or IPv6 conflict, I'm not sure.

This bug is very random, I manage to reproduce it only at the following times:
- Either by shutting everything down (unrealircd/service/apache) and restarting the dedicated server. The freezing bug on channels will always occur after all restarts.
- Or accidentally, at random times, but it's extremely rare and I have no idea if it's the same identical bug because I never checked if it was possible to see if I was in the channels by reconnecting to BNC with mIRC.
- The bug is always related to the BNC server and a SASL account, it never occurs with anything else.

Maybe it's the Firefox browser, I'll test tomorrow with Chrome (I've always tested with Firefox), because a second person I was able to see that she had the identical bug, and I just noticed that she also had Firefox


2024-04-19 00:12

reporter   ~0023174

This topic can be closed or deleted, as the issue originates from the BNC server. Best regards.

Issue History

Date Modified Username Field Change
2024-04-11 16:42 armyn New Issue
2024-04-11 16:45 Valware Note Added: 0023168
2024-04-11 16:52 armyn Note Added: 0023169
2024-04-13 13:54 armyn Note Added: 0023172
2024-04-14 20:19 armyn Note Added: 0023173
2024-04-19 00:12 armyn Note Added: 0023174
2024-06-07 18:06 syzop Assigned To => syzop
2024-06-07 18:06 syzop Status new => closed
2024-06-07 18:06 syzop Resolution open => no change required