- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
В 2023 году Одноклассники пресекли более 9 млн подозрительных входов в учетные записи
И выявили более 7 млн подозрительных пользователей
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Traceback (most recent call last):
File "/usr/lib64/python2.4/site-packages/twisted/python/log.py", line 84, in callWithLogger
return callWithContext({"system": lp}, func, *args, **kw)
File "/usr/lib64/python2.4/site-packages/twisted/python/log.py", line 69, in callWithContext
return context.call({ILogContext: newCtx}, func, *args, **kw)
File "/usr/lib64/python2.4/site-packages/twisted/python/context.py", line 59, in callWithContext
return self.currentContext().callWithContext(ctx, func, *args, **kw)
File "/usr/lib64/python2.4/site-packages/twisted/python/context.py", line 37, in callWithContext
return func(*args,**kw)
--- <exception caught here> ---
File "/usr/lib64/python2.4/site-packages/twisted/internet/selectreactor.py", line 146, in _doReadOrWrite
why = getattr(selectable, method)()
File "/usr/lib64/python2.4/site-packages/twisted/internet/tcp.py", line 460, in doRead
return self.protocol.dataReceived(data)
File "/root/pyicqt-0.8.1.5/src/tlib/oscar.py", line 663, in dataReceived
File "/root/pyicqt-0.8.1.5/src/tlib/oscar.py", line 811, in oscar_Data
File "/root/pyicqt-0.8.1.5/src/tlib/oscar.py", line 1458, in oscar_01_10
struct.error: unpack str size does not match format
Вот трейс ошибки в питоне. Скажите, плиз, в каком именно файле в какой строке непостредственно произошла ошибка unpack str size does not match format, которая и вызывает ошибку? Чтобы трай-кетч (аль как оно в питоне зовется) туда можно было вставить.
Bill A.,
Питоном занимался мало, но очень похоже что какой-то глюк с библиотекой/фреймворком twisted. Может проблема с версиями/сборками или нет необходимых ему библиотек
Это pyicqt, транспорт жаббера к аське
уж точно не из-за любви к искусству пытаюсь пофиксить эту проблему :) гуглил все, но решения не нашел
Вот и хочу понять конкретную проблемную строчку, чтобы перехватывать там эту ошибку. Может все наладится :)
Bill A., с виду какая то проблема с трафиком либо библиотекой оскара (айсику насколько я понял), формат пакета неправильный либо библиотеки
bearman добавил 10.03.2010 в 10:50
где то в этой "области")
Некоторые мои соображения.
проблема в строке 1458 файла pyicqt-0.8.1.5/src/tlib/oscar.py, в этой функции:
def oscar_01_10(self,snac):
skip = struct.unpack('!H',snac[5][:2])[0]
newLevel = struct.unpack('!H',snac[5][2+skip:4+skip])[0]/10
if len(snac[5])>4+skip:
by = self.parseUser(snac[5][4+skip:])
else:
by = None
self.receiveWarning(newLevel, by)
Сама функция - один из методов класса BOSConnection.
Идем выше, на строчку 811 в функцию класса SNACBased, который является родителем класса BOSConnection.
Функция oscar_Data:
def oscar_Data(self,data):
<...>
func=getattr(self,'oscar_%02X_%02X'%(snac[0],snac[1]),None)
if not func:
self.oscar_unknown(snac)
else:
func(snac)
return "Data"
И еще выше в класс OscarConnection в функцию dataReceived:
def dataReceived(self,data):
<...>
func=getattr(self,"oscar_%s"%self.state,None)
if not func:
log.msg("no func for state: %s" % self.state)
return
<...>
Т.о. в log.msg, которая является частью библиотеки twisted нужно передать сообщение "no func for state: %s". Но атрибут state связан с другими классами, так или иначе дело доходит до функции oscar_Data, в которой переменной func передается атрибут-функция, выбор которого определяет snac (некий параметр получаемый извне). Этот атрибут в нашем случае -- функция oscar_01_10. Т.о. вызов func(snac), который мы увидим позже -- и есть вызов функции oscar_01_10, в котором и произошла ошибка. А ошибка чисто структурная, из модуля struct. В результате - log.msg не может принять нужный параметр, поэтому в вершине иерархии трейса - библиотека twisted.
Как-то так. Если кто в чем поправит, буду благодарен.
Чтобы надежно пофиксить, нужно глубже повкуривать код.
Поймать ошибку можно с помощью
exception struct.error, err:
print str(err)