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/