Two weeks ago I launched 2 fleets on 2 separate VMs. Each fleet connected to 7 networks.1 I was only able to connect to 7 networks per VM because I use a separate sbcl process for each network, and quicklisp uses 70MB of memory by itself. My VMs have 1GB of RAM. At the time of writing, VM1 collected 20,203 messages and VM2 collected 43,410 messages.2 An example query of the data on VM1:
fleetbotdb=> select message, target, networkname from irclog where LOWER(message) like '%btc%'; message | target | networkname -------------------------------------------------------------------+---------------+------------- hey MrBTC | #nostalgic | DejaToons get that other retard with that btc referal | #VHSTAPES.ORG | DejaToons !btc | #VHSTAPES.ORG | DejaToons !btc nzd | #VHSTAPES.ORG | DejaToons [BTC_DUMP] (ZeaS|SaInT-DeViL): -2.07% 9042.921019276757 -> 8855.5 | #pos | D4RCnet Bought 0.1847727 BTC for 1640.35 USD | #pos | D4RCnet [BTC_DUMP] (ZeaS|SaInT-DeViL): -2.34% 8852.59497206704 -> 8645.1 | #pos | D4RCnet [BTC_DUMP] (ZeaS|SaInT-DeViL): -2.04% 8642.408379888288 -> 8465.9 | #pos | D4RCnet [BTC_DUMP] (ZeaS|SaInT-DeViL): -2.44% 8716.312068028039 -> 8503.9 | #pos | D4RCnet (9 rows)
There were a few problems I encountered that disconnected most of my bots. On VM1 it appears the only networks I am still connected to are DejaToons and deguino.net. On VM 2, Omninet. I am never 100% sure of my connection status to various channels/networks because to get that information I need to manually dig through logs.
Here are some of the error messages I received from the networks where I am sure I disconnected:
DigitalIRC - ERR_YOUREBANNEDCREEP: shire.digitalirc.org snup97 "You are not welcome on this network. G-Lined: join/part spam. Email https://tickets.digitalirc.org for more information."
Crippler - Sent me TOOMANYCHANNELS errors and then I couldn't reconnect.
GeekSheed - ERROR: "Closing Link: snup97[167.172.17.162] (User has been banned from GeekShed (You are banned from GeekShed for 8d! Reason: Malicious bots, clones and drones are prohibited by the Network TOS. :You may appeal it at http://www.geekshed.net/bans/?setby=Coyote%60&seton=*%40167.172.17.162&time=8d&reason=Malicious bots, clones and drones are prohibited by the Network TOS.))"
P2PChat - NOTICE: spinnaker.p2pchat.net roco44 "*** You are banned from P2PChat (either stay on or off (3 days))"
AustNode - ERR_YOUREBANNEDCREEP: Koala.SG.AustNode.org roco44 "You are not welcome on this network. Z-Lined: suspicious host. Email NetAdmins@AustNode.org for more information."
BDChat - NOTICE: irc.bdchat.com roco44 "*** You are banned from BDCHAT ([CaNdy_SHop_US] [CaNdy_SHop_US]). Email admin@bdchat.com for more information."
freenode - ERROR: "Closing Link: 68.183.107.30 (Excess Flood)"
SceneP2P - ERR_YOUREBANNEDCREEP: Wintermute.SceneP2P.net roco44 "You are not welcome on this network. G-Lined: Invalid channel. Email banned@scenep2p.net for more information."
On VM1 my bots logged 19,519 channel joins 19,276 channel disconnects. On VM2 4,440 joins and 4,354 disconnects. I discovered that only a few of these disconnects were due to being kicked from a channel. So somehow I am getting into reconnect/disconnect cycles that show up as spam. This gets me banned from the network.
My next steps forward are as follows:
- Reduce memory overhead from using quicklisp to load cl-irc and its dependencies.
- Create a strategy / command for being able to see which networks/channels I am currently connected to across my VMs.
- Investigate why I did a reconnect/disconnect dance with certain networks.
- I saw in the logs that some networks said I was joining too many channels. I should investiage why, since the number of channels my nicks join are capped at the network's reported max-chans-per-nick limit.
- Investigate Excess Flood problem with freenode.
- Increase delay before reconnecting to a network. Remove cl-ircs auto reconnect on kick.
- Publish vpatch for ircbot's reconnect bug.
- VM1: DigitalIRC, DejaToons, deguino.net, D4RCnet, Crippler, GeekShed, P2PChat.
VM2: freenode, DALnet, ircHax0r, Omninet, SceneP2P, BDCHAT, and AustNode [↩] - These were messages of type PRIVMSG, i.e. normal user/bot messages. There were about 100,000 messages total if we include join/part messages. [↩]
Understanding cl-irc entrails is part of those 1-7 steps there, somewhere.
Yes, step 0. I should have listed it explicitly.