>>>>> "James" == James Waldrop <sulam@xxxxxxxxxxxxx> writes: James> You can cause this to happen very easily. Login to IRC and James> send yourself a line of text repeatedly (30-40) times. You James> have to have the flooding tuned very high for this to work. James> The first 10 or so messages come back relatively quickly, but James> after that you can continue to send them and not get anything James> back from the server. Eventually you may or may not see a James> PING, and even if you PONG back you still get timed out. James> Because we're getting timed out I've been assuming the James> problem is due to a delay in handling the input queue, so I'm James> focusing my time there right now. But I'd love some advice on James> where else to look, or if someone knows what the problem is James> and how to fix it off the top of their head that'd be great James> too. This sounds like a side-effect of the penalty code kicking in. Basically everything you send to the server has a penalty associated with it. From http://www.stealth.net/~kalt/irc/faq.html#misc-4: 4.What is ``penalty''? This feature appeared in 2.9.1 in replacement of some old less flexible equivalent mechanism. Each command of the server has a penalty which will be applied to the client running this command. The penalty is defined in seconds. If a user's penalty exceeds 10 seconds, any incoming data is delayed, and only processed when the penalty goes under 10 seconds again. Many people would like a list of penalties, unfortunately, it is quite difficult to make one. The only way to know is to RTFS. Most of the time, commands which affect the net have a high penalty. (For example, doing a remote WHOIS is more penalized than doing a WHOIS locally). Basically I think you're sending so much that your penalty exceeds the ping timeout for your connection class. Hence your incoming PONG response isn't processed in time. - Andrew -- #!/usr/bin/env python print(lambda s:s+"("+`s`+")")\ ('#!/usr/bin/env python\012print(lambda s:s+"("+`s`+")")\\\012') print(lambda x:x%`x`)('print(lambda x:x%%`x`)(%s)')
Attachment:
pgp00013.pgp
Description: PGP signature