Yes this could be dangerous, but in my case these volatile attributes need not to be in the cache for a very long time, it's just a matter of 3 or 4 clicks in about half a dozen of minutes. But yeah, I'll really have to be careful about that, or to recreate them if they're gone (hence the setattr and getattr to make sure there's something in self._v_something and create one if there's not)
Ok, I changed my mind again ^_^. Volatile attributes are shared across multiple sessions, which is not acceptable for my application. So here's what I cam up with : * 1 : Do not store references to a ZODBish object into a non ZODBish object * And 2 : just pass the context as a parameter to all the non-ZODBish methods that need it. I Tried to avoid this in the first place (hence storing it as an attribute), but putting them in the session broke everything. Cheers.