Hive13/jIRCBot — Issue #20: Ping timeouts not being logged as "X left the channel"
Author: ryodoan
Created: 2012-01-31 16:22:35+00:00
State: open
Labels: Defect

I should be catching all "Quit" and "Part" events when a user leaves the channel. Failing to do so causes the bot to essentially "leak" memory. It keeps a dynamic list of all of the users in the channel, when a user joins the channel, the bot adds them to the list, when they leave the bot removes them from the list. If the bot does not remove a user from the list, we end up with a "dead" record in the userlist.

I thought the bot was catching all "Quit" and "Part" events, however on this day (http://portal.hive13.org/irclogger/index.php?d=2012-01-31#msg149252) the user 1811290a joined the channel, talked for a bit, then had a Ping timeout, ( 1811290a [blah blah 1811290a ] has quit [Ping timeout: 245 seconds] ) However the log does not show a "1811290a has left the channel" event.

To add a wrinkle to this, user "1811290a " is one of the "obfuscated" users, it could be the "X has left the channel" or "Parts" or "Quits" was not updated to correctly handle obfuscated users.