old states linger in persistent object cache

Bug #487243 reported by Marius Gedminas
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
ZODB Browser
Fix Released
Critical
Marius Gedminas

Bug Description

Take a really old Data.fs, go to root folder, look at it, go somewhere else. You get a crash:

  ComponentLookupError: no site manager defined

because the root folder with its old state of the root folder lingers in the ZODB object cache, and we call __setstate__ indiscriminantly in our listHistory views.

zodbbrowser should take care to restore all objects to pristine condition after calling __setstate__.

This may have even more sinister consequences: the old state might get modified and written back to the DB. I bet this explains one very curious error I've seen.

Changed in zodbbrowser:
importance: Undecided → Critical
Revision history for this message
Marius Gedminas (mgedmin) wrote :

Fixed in 0.5.1.

Changed in zodbbrowser:
status: New → Fix Released
Changed in zodbbrowser:
milestone: none → 0.5.1
Revision history for this message
Marius Gedminas (mgedmin) wrote :

Looks like the bug is not fully fixed: I was browsing an OrderedContainer's _data attribute in historical mode which triggered a bug in a different object because the OrderedContainer's _order had keys that were present in _data's latest version but not in the historical version I was looking at.

zodbbrowser should not affect other requests in any way!

Changed in zodbbrowser:
status: Fix Released → Confirmed
Changed in zodbbrowser:
milestone: 0.5.1 → 0.7.1
assignee: nobody → Marius Gedminas (mgedmin)
Changed in zodbbrowser:
status: Confirmed → Fix Committed
Changed in zodbbrowser:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.