redis. Они сериализуются через pickle (да-да, но переписывать все на другую библиотеку я пока не готов). При попытке просто подключиться к базе, получить и десеарилизовать объект выдает:
_pickle.UnpicklingError: pickle data was truncated
и этом внутри у объекта, который модуль собирает для записи в базу:
if self.exc_info is not None:
obj['exc_info'] = zlib.compress(str(self.exc_info).encode('utf-8'))
Пробовал вот так -
trace = r.hget(name='rq:job:8c07f129-1b7b-4d5c-8677-0bd218110693', key='exc_info')
data = pickle.loads(zlib.decompress(trace), fix_imports=True, encoding="utf-8", errors="strict")
При этом если брать объект, созданный через
obj['data'] = zlib.compress(self.data)
то он нормально десериализуется без проблем. Там примерно с килобайт данных. Что может быть не так?
так. Ты случайно данные об исключениях не пишшеь в базу?
Обсуждают сегодня