[development] Druplicon IRC bot needs yer channels! Help stress test new code!
Aaron Winborn
winborn at advomatic.com
Fri May 8 17:34:47 UTC 2009
Great work, as always! Is there a 'channels?' factoid or other method to
learn the channels that Druplicon has joined?
Morbus Iff wrote:
>
> As some of you know, Druplicon has been "full" for awhile, as I've
> denied any new channel joins due to the bot having reached a threshold
> that caused it to choke on handshakes. Some of you may have even
> recalled this factoid:
>
> [13:06] <Druplicon> When I first start, I'm in so many channels that
> it takes me a long time to cache all the necessary user info. This is
> not a fault of my code, but rather that I'm in 20+ channels. This
> handshaking causes me to be initially unresponsive for 2+ minutes and,
> if you directly address me, I may flood.
>
> I have just applied code to hopefully fix this problem.
> The inline comments should explain the change suitably:
>
> When the bot has a number of channels to join (nearing 20+), the
> initial handshake, where it retrieves information about every user in
> every channel, can cause it to overload and disconnect. To solve this,
> we join channels every 15 seconds instead, which gives some breathing
> room for the nick caching to take place. A nice side-effect of this is
> that if the bot errors out of a channel, or a new channel is added to
> the list, it'll automatically (re)connect without needing a restart.
>
> This now means that for every restart, Druplicon will take a longer
> time to join every channel (15 seconds * NUMBER_OF_CHANNELS), but it
> should be able to join far more. And, one of the primary reasons for
> restarting Druplicon in the first place was to have it join new
> channels - this restart should no longer be necessary due to the above
> changes (due to the variables cache being cleared every five minutes,
> which would cause the new code to detect newly-added channels and
> autojoin them).
>
> So, what I need is:
>
> * All those people I said "No Druplicon for you!" to ask me again.
>
> I'd like to stress test things by adding him to every channel
> requested and see where the next major chokepoint will be. [Note: this
> is a problem unique to Druplicon - I don't know of many IRC bots who
> are in more than 20 channels, much less those who are requested to be
> in, easily, 30 or more. That's how widespread our channels are.]
>
--
Aaron Winborn
Advomatic, LLC
http://advomatic.com/
Drupal Multimedia available in September!
http://www.packtpub.com/create-multimedia-website-with-drupal/book
My blog:
http://aaronwinborn.com/
More information about the development
mailing list