[development] Druplicon IRC bot needs yer channels! Help stress test new code!

Morbus Iff morbus at disobey.com
Fri May 8 17:12:04 UTC 2009


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.]

-- 
Morbus Iff ( is this a cut out bath-poster Morbus, or what? )
Technical: http://www.oreillynet.com/pub/au/779
Enjoy: http://www.disobey.com/ and http://www.videounderbelly.com/
aim: akaMorbus / skype: morbusiff / icq: 2927491 / jabber.org: morbus


More information about the development mailing list