I've been racking my brain over a bizarre problem I've run into. I may have posted about it before but I want to post fresh about it regardless.
There is an occasional problem that occurs with PyICQt and PyAIMt (specifically.. oscar.py) where outgoing messages are "delayed by one". By that I mean, lets say you send a message. It does not leave the machine. However, when you go to type another message, the typing notification triggers the message to leave, and now the typing notification is stuck. I have watched these events come into oscar.py, go through everything they need to go through, and "leave my code" via self.transport.write. At the same time, I'm sitting here watching the network traffic coming from the box and nothing leaves. (until the next event occurs) It's only outgoing events too.
So here's some misc notes I've made about this:
- does not occur with Twisted 1.3.0, started happening in Twisted 2.*
- does not appear to occur with the epoll reactor, but I haven't tested this thoroughly
- thought it was only the poll reactor, but that doesn't appear to be true
- occurs with python 2.2 - 2.4
- can occur on both mac os x and linux
I had a thought the other day that perhaps I'm accidentally overriding some important variable that is used by a protocol.Protocol, but that does not appear to be the case. I did notice that I'm using ClientCreator which in Twisted 1.3.0 was listed as unstable. Seems to not be in Twisted 2.*. However, I don't really see anything different there.
I find it highly unlikely that my code is NOT causing this in some way, but something beyond my code is where the problem is really occuring. I would expect to see a lot of posts on the twisted lists if it weren't being caused by my code in some way.
Bah, I have no idea what's going on. I don't have hard facts on this yet, but I believe that it doesn't always "start" like this. Like occasionally I'll be fine, no delay, and then it will 'come on' at some point. Then again, maybe it's just that I had events going at the time that were triggering everything to run correctly.
My original thought was that I wasn't finishing off my packets to OSCAR in some way and OSCAR was sitting there waiting for me to finish my statement, so to speak. However, I've been able to observe the messages never leaving in the first place. So ... bah.
I don't feel like I have enough hard facts to put together to bug the twisted community with. I feel like I'd be saying "well there's something wrong, but I can't prove it". How useful is that? =/
I don't understand why Twisted 1.3.0 doesn't have this problem. That part is extremely weird to me.

