Сегодня утром мой 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/