Сегодня утром мой IM-шлюз потерял связь с серверами ICQ (причем, по логам сервиса создается впечатление, что связь разорвана принудительно).
Повторные переподключения проблему не решили, python-скрипт транспорта вываливается с исключениями:
Unhandled error in Deferred: Traceback (most recent call last): File "/usr/local/etc/icq/src/tlib/oscar.py", line 663, in dataReceived state=func(flap) File "/usr/local/etc/icq/src/tlib/oscar.py", line 792, in oscar_Data d.errback(snac) File "/usr/lib/python2.4/site-packages/twisted/internet/defer.py", line 269, in errback self._startRunCallbacks(fail) File "/usr/lib/python2.4/site-packages/twisted/internet/defer.py", line 312, in _startRunCallbacks self._runCallbacks() --- <exception caught here> --- File "/usr/lib/python2.4/site-packages/twisted/internet/defer.py", line 328, in _runCallbacks self.result = callback(self.result, *args, **kw) File "/usr/local/etc/icq/src/tlib/oscar.py", line 2083, in _cbRequestSSI if snac[1] == 0x0f: # same SSI as we have exceptions.TypeError: unsubscriptable object
Jabber-клиент дает более вразумительное сообщение:
ICQ connection lost! Reason: [Failure instance: Traceback (failure with no frames): twisted.internet.error.ConnectionLost: Connection to the other side was lost in a non-clean fashion.]
Видно, что был изменен формат протокола, по крайней мере, в части инициализации соединения. Снова меняют протокол?
Обсуждение
Спустя полтора часа сервера ICQ стали принимать подключения от транспорта. Конечно, никаких официальных разъяснений от технической службы ICQ ждать не приходится.
Обсуждение на Хабре - http://habrahabr.ru/blogs/im/62686/