После переноса проекта с twisted 8.1.0 на twisted 10.0.0 на закрытии программа начала выкидывать:
2010-05-25 17:32:56+0700 [-] Exception AttributeError: "'NoneType' object has no attribute 'deferr'" in <bound method Tank.__del__ of <model.Tankinstance at 0x8fa094c>> ignored
2010-05-25 17:32:56+0700 [-] Exception AttributeError: "'NoneType' object has no attribute 'deferr'" in <bound method ClientOilProduct.__del__ of <model.ClientOilProduct instance at 0x8fa0a2c>> ignored
Эти объекты наследники pb.RemoteCache, у которого в методе __del__ вызывается метод, вызывающий удаленный метод сервера уменьшающий количество ссылок на серверный объект. Так вот в этом методе, для сериализации используется cStringIO, и в этот момент cStringIO равен None. Похоже к моменту вызова __del__ модуль уже выгружен из памяти. Подозреваю что все дело в лишних ссылках на эти объекты. Как вообще можно отследить ситуацию? Может инструменты какие есть?