Dennis Allison wrote at 2004-1-23 13:13 -0800:
The observed behavior (as always, transient and irreproducable from test cases) is that the contents of a PersitentMapping object disappears. The underlying structure is a PersistentMapping of PersistentMappings of User objects. My understanding is that the PersistentMapping wrapper handles the black magic properly. As for the perilious modification of mutable attributes, I am certainly aware of the issue--in fact, that's why I am so concerned about the monkey patch issue as it is in the monkey patch code that the PersistentMapping constructor is called, etc.
Recently, a packing bug has been detected ("FileStorage") which can lead to data loss. It is triggered when a pack tries to pack to a time before the pack time of an earlier pack. When you detect the loss before history information has been removed by a pack, you can reconstruct the content of earlier versions (and at least determine when the loss occured -- this may give some hints with respect to the cause). I posted some (low level!) routines to "mailto:zope-dev@zope.org" or "mailto:zodb-dev@zope.org" that makes this a bit easier (--> archives). Almost surely (I am convinced, but I know your trust in me is limited :-) ), monkey patching does not affect whether or not persistent object changes are lost... -- Dieter