Zope: Bei einem ConflictError/POSKeyError das betroffende Objekt ermitteln
Wenn ein ZPublisher.Conflict ConflictError oder POSKeyError auftritt, können wir wie folgt mittels des debug Modus, das betreffende Objekt anhand der angegebenen oid ermitteln.
In der Konfliktmeldung steht z.B. ( oid 0x046cbb...
Um das zugehörige Objekt zu ermitteln, starten wir Zope im Debug-Modus:
./bin/instance debug
nun importieren wir uns noch p64 und ermitteln aus dem hexcode das vom Konflikt betroffene Objekt:
from ZODB.utils import p64cobj = app._p_jar[p64(0x046cbb)]
cobj ist jetzt das vom Konflikt betroffene Objekt und wir können dies näher untersuchen.