collective.logbook
을 사용하여 사이트의 오류를 저장합니다. 일지는 획득 한 객체를 참조하는 오류의 기록을 작성하려고하기 때문에Plone : TypeError : 취득 래퍼에서 피클을 추출 할 수 없습니다.
File "/srv/plone/xxx/src/collective.logbook/collective/logbook/events.py", line 101, in hand
transaction.commit()
File "/srv/plone/buildout-cache/eggs/transaction-1.1.1-py2.6.egg/transaction/_manager.py", line 8
return self.get().commit()
File "/srv/plone/buildout-cache/eggs/transaction-1.1.1-py2.6.egg/transaction/_transaction.py", li
self._commitResources()
File "/srv/plone/buildout-cache/eggs/transaction-1.1.1-py2.6.egg/transaction/_transaction.py", li
rm.commit(self)
File "/srv/plone/buildout-cache/eggs/ZODB3-3.10.5-py2.6-linux-x86_64.egg/ZODB/Connection.py", lin
self._commit(transaction)
File "/srv/plone/buildout-cache/eggs/ZODB3-3.10.5-py2.6-linux-x86_64.egg/ZODB/Connection.py", lin
self._store_objects(ObjectWriter(obj), transaction)
File "/srv/plone/buildout-cache/eggs/ZODB3-3.10.5-py2.6-linux-x86_64.egg/ZODB/Connection.py", lin
p = writer.serialize(obj) # This calls __getstate__ of obj
File "/srv/plone/buildout-cache/eggs/ZODB3-3.10.5-py2.6-linux-x86_64.egg/ZODB/serialize.py", line
return self._dump(meta, obj.__getstate__())
File "/srv/plone/buildout-cache/eggs/ZODB3-3.10.5-py2.6-linux-x86_64.egg/ZODB/serialize.py", line
self._p.dump(state)
TypeError: Can't pickle objects in acquisition wrappers.
이 분명하다 : 현재 일지는 몇 가지 예외에 내 사이트에 실패합니다. 나는 해결책이 이런 종류의 객체들로부터 오류를 제거하는 것이라고 가정한다.
그러나 나쁜 객체가 무엇인지, 어떻게 트랜잭션 관리자로 끝나는 지, 그리고이 문제를 일으키는 파이썬 객체 참조는 무엇인지 알아낼 수 있습니까? 아니면이 문제를 디버깅하는 데 도움이 될만한 것이 있습니까? 당신이 안정적으로이 문제를 재현 할 수있는 경우
이 문제는 읽기 및 쓰기 개체와 관련이 있습니까? 쓰여지고있는 객체에만 플래그를 지정하는 방법은 없나요? –
이것은 서면 개체에만 관련되어야합니다. 그들은 나중에 이어지는 커밋에 대한 연결로 등록됩니다. –