Opened 9 years ago

Last modified 5 months ago

#11089 new defect

connecting to irc floods irc server

Reported by: kermit Owned by: elb
Milestone: Component: IRC
Version: 2.7.9 Keywords: flood irc ison join disconnect
Cc: micahg, CiaranG, sthibaul, rakotomandimby, nodiscc, hroncok, electrofelix

Description

An IRC server will boot pidgin for flooding When the number of channels to JOIN plus buddies to ISON is high enough, as pidgin sends them all in a burst.

Attachments (3)

Screenshot_2018-04-01_14-51-23.png (70.6 KB) - added by kip 6 months ago.
Screenshot of gui changes
irc_join_throttle.patch (3.5 KB) - added by kip 6 months ago.
Patch to fix IRC channel flood join problem.
pidgin.bt (3.4 KB) - added by hroncok 6 months ago.
Stacktrace after irc_join_throttle.patch

Download all attachments as: .zip

Change History (50)

comment:1 Changed 9 years ago by kermit

This is much more of a problem with the new Freenode... I can only autojoin about 7 channels now.

comment:2 Changed 9 years ago by kermit

A hack to get around this problem is to make one auto-join channel called #channel1,#channel2,#channel3 etc, and remove the individual ones, so that it's sent on one JOIN line instead of several.

comment:3 Changed 8 years ago by kermit

  • Version changed from 2.6.4 to 2.6.6

comment:4 Changed 8 years ago by rekkanoryo

The irc-more plugin in the Purple Plugin Pack now has a field to specify autojoin channels. Supply the channels as a comma-separated list (such as #pidgin,#pidgin-commits,...,#test). This will help the autojoin floods. That said, yes, we probably do need some sort of throttling in our IRC plugin.

comment:5 Changed 8 years ago by kermit

  • Version changed from 2.6.6 to 2.7.9

comment:6 Changed 8 years ago by kermit

The comma list of channels method only works for the initial connect, automatic reconnects still flood me off.

comment:7 Changed 7 years ago by BW~Merlin

I have just run into this problem today, was already using the IRC plugins and even tried removing a few of the channels I don't use much. The initial login is generally ok but if you disconnect for what ever reason you can not get back in because of excess flooding (can a flood ever not in excess?).

comment:8 Changed 7 years ago by BW~Merlin

I have spoken to some guys on #freenode and they say the new server software has lowered the flood limit a little and that if pidgin could include a limit on the channel join rate that should solve the issue.

comment:9 Changed 7 years ago by elb

Ticket #11726 has been marked as a duplicate of this ticket.

comment:10 Changed 6 years ago by elb@…

(In b9fd37553a90f47c560be425179d044468a21f96):
Remove periodic WHO on IRC.

I believe I have left enough functionality here that a misguided libpurple client can continue to trigger WHO from its own UI.

References #11089, #14602 Fixes #14955

comment:11 in reply to: ↑ description Changed 6 years ago by kip

Thanks elb.

comment:12 Changed 6 years ago by BW~Merlin

For me this issue is still not fixed. If I get disconnected from freenode I am unable to rejoin and have to exit pidgin completely and restart it.

comment:13 Changed 6 years ago by elb

This bug is also not closed. That change referenced this ticket because it certainly will help flooding issues, but it did not fix the on-join flooding issue.

comment:14 Changed 6 years ago by kip

For me, this is still a problem in Pidgin 2.10.4. I found that exiting Pidgin and restarting it did not solve it. I realized there was something more going on when I tried changing my IP address and saw the flood temporary ban message persist. After I removed some of the autojoin channels and restarted the client, it worked.

comment:15 Changed 6 years ago by CiaranG

They don't even have to be autojoin channels, you simply have to /join "too many" (not many at all, perhaps 8) channels, and then temporarily lose your connection. On re-connection, you will be repeatedly booted until you close some of those channel windows.

comment:16 Changed 6 years ago by sthibaul

Still an issue with pidgin 2.10. That limits the number of chans I can afford on freenode, I'm afraid I'll have to change IM client to continue working.

comment:17 Changed 5 years ago by elb

Ticket #15623 has been marked as a duplicate of this ticket.

comment:18 Changed 5 years ago by rakotomandimby

Pidgin 2.10.7 on Fedora 18 still have this problem too.

If someone used with Pidgin source code ever know what file to edit, maybe some volonteer could try something and submit a patch.

No? ;-)

comment:19 Changed 5 years ago by nodiscc

Confirming this bug persists in pidgin 2.10.7-2+b1 in Debian. Is there ongoing work on this?

Thanks

comment:20 Changed 5 years ago by elb

Ticket #15912 has been marked as a duplicate of this ticket.

comment:21 Changed 4 years ago by datallah

Ticket #16256 has been marked as a duplicate of this ticket.

comment:22 Changed 4 years ago by itech20

I've hit this consistently for some time now. I can confirm that the following trivial patch, adding a half second delay to every IRC channel join, has resolved it for me:

https://gist.github.com/imcleod/77f38d11af11b2413ada

comment:23 Changed 3 years ago by hroncok

This is still an issue in 2.10.11.

comment:24 Changed 2 years ago by reinierpost

This is still an issue today. I'm using the current Pidgin (2.10.12) on Windows 8.1. With over 10 channels open, reconnecting fails due to excess flood.

Arguably, this is a freenode bug, as I'm not actually flooding on any channels (in fact I'm not sending any messages to them at all), but the only reason for me to install Pidgin is to use it as an IRC client for freenode, so it would be really nice if this were fixed on the Pidgin side.

comment:26 Changed 2 years ago by hroncok

Yes, it does.

It makes Piding unrepsonsive for a while, but it workarounds the issue.

Build for Fedora: https://copr.fedorainfracloud.org/coprs/churchyard/pidgin-antiflood/

comment:27 Changed 2 years ago by reinierpost

I asked on freenode, first on #pidgin (they said a patch is welcomed), then on #freenode (they said to wait 2 secs between each channel join, and that Pidgin's IRC support is never going to work well, it's full of old bugs and doesn't play nice. I'm switching from Pidgin to Hexchat as a result).

But thanks anyway! I may be using Pidgin in the future, but I'm not going to work with Pidgins compiled from source.

Last edited 2 years ago by reinierpost (previous) (diff)

comment:28 Changed 2 years ago by elb

Ticket #15740 has been marked as a duplicate of this ticket.

comment:29 Changed 2 years ago by hroncok

This is 6 years old and only got 4 upvotes. Do people having this issue upvote this?

comment:30 Changed 19 months ago by vorburger

Upvoted it... this is quite a PITA when using Pidgin on FreeNode ...

comment:31 Changed 15 months ago by electrofelix

Disabling the account, closing all open channel windows and re-enabling allows me to work around it, presumably this results in a small delay occurring as pidgin re-creates the chat window for each channel autojoin.

comment:32 Changed 14 months ago by arximboldi

This bug makes me sad... I love using Pidgin for chat so I can keep all my messaging in the same app.

comment:33 Changed 6 months ago by kip

Still experiencing this same issue with Pidgin 2.12.0 (libpurple 2.12.0).

comment:34 Changed 6 months ago by sthibaul

Same with pidgin/libpurple 2.13.0

comment:35 Changed 6 months ago by kip

Ok, I believe I can repair this. My preliminary patch appears to work. Would anyone be willing to offer a bounty so I can take some time to put my actual work aside for a bit and fix this formally?

Changed 6 months ago by kip

Screenshot of gui changes

comment:36 Changed 6 months ago by kip

Ok my patch appears to work but will continue to test over the coming week or two as I have time. Any bounty offers?

Changed 6 months ago by kip

Patch to fix IRC channel flood join problem.

comment:37 Changed 6 months ago by kip

I've tested my patch with 2.12.0 for several days with no issue. The problem appears to be solved. The patch also applies cleanly to Mercurial head, but I haven't tested with head.

comment:38 Changed 6 months ago by Robby

A quick hint: Pull requests at the Bitbucket repo are reviewed a lot more quickly than patch files here on Trac.

Last edited 6 months ago by Robby (previous) (diff)

comment:39 Changed 6 months ago by kip

Thanks Robby, but unfortunately I don't have time. It seems as though nobody here has offered any feedback on testing, let alone a bounty. If you'd like to submit the pull request, please by all means feel free to do so.

comment:40 follow-up: Changed 6 months ago by hroncok

I'll test this.

comment:41 in reply to: ↑ 40 Changed 6 months ago by kip

Replying to hroncok:

I'll test this.

Thank you kindly, hroncok.

comment:42 follow-up: Changed 6 months ago by hroncok

with the patch it floods and SIGABRTs as well.

comment:43 in reply to: ↑ 42 Changed 6 months ago by kip

Replying to hroncok:

with the patch it floods and SIGABRTs as well.

Can you test it against Pidgin 2.12.0 (libpurple 2.12.0). If the problem persists, can you provide me with a stack trace?

comment:44 Changed 6 months ago by hroncok

That was on 2.12.0. Will try

Changed 6 months ago by hroncok

Stacktrace after irc_join_throttle.patch

comment:45 Changed 5 months ago by kip

My source lines aren't corresponding with your stack trace. Can you show me the exact command you ran to clone the repository and apply the patch? Try with 2.13.0 because I was able to reproduce a crash from time to time, albeit it's not clear yet if it's because of the patch.

comment:46 Changed 5 months ago by hroncok

I'm not able to test anything now. So just info: I'm taking the Fedora package and applying the patch. Sources at https://src.fedoraproject.org/rpms/pidgin

comment:47 Changed 5 months ago by kip

For those who would like to test the patch running Ubuntu 18.04 (Bionic), you can use my PPA:

https://launchpad.net/~kip/+archive/ubuntu/pidgin

Note: See TracTickets for help on using tickets.
All information, including names and email addresses, entered onto this website or sent to mailing lists affiliated with this website will be public. Do not post confidential information, especially passwords!