Comment 0 for bug 428039

Revision history for this message
Jacob Holm (jacobholm) wrote :

ZODB.TmpStore._rollback invalidates the cache before resetting. This causes any _p_invalidate methods to be called while the state has not yet been rolled back. This means that a custom _p_invalidate that loads the object after calling Persistent._p_invalidate, will load the wrong state.

AFAICT, the bug is present in all versions of ZODB that support savepoints.

The fix is simple, see attached patch against the trunk r103853 (including test).