This clearly sounds like a bug.  Perhaps as a workaround you could switch to
SessionMemoryStore and see if it avoids the problem.  It should only pickle
when stopping the appserver and should only unpickle when starting it.  I'm
curious if it also ends up loading the pickled file twice.

- Geoff

Tracy S. Ruggles wrote:
> I've got an object that I'm putting to a session object that has its
> own __getstate__ and __setstate__ method defined.  After a restart of
> webkit, the SessionDynamicStore object loads the pickled file twice,
> calling my object's __setstate__ method twice.
> 
> Specifically, beginning at line 130 of SessionDynamicStore in
> "MoveToMemory", the code first gets the object via the __getitem__
> method (decoding via a pickle.load) and then deletes it from itself
> via its own __delitem__ method -- which in turn calls __getitem__
> again so it can call its .expiring method before doing an os.remove
> on the actual file.
> 
> Has anyone had trouble with having an expensive __setstate__ method
> for objects being put into memory?  My object's __setstate__ method
> essentially bootstraps itself into existence with a minimal amount of
> info pickled from the __getstate__ method since the data inside my
> object is not pickle-able.
> 
> Is there a way around having a pickled object being created twice by
> the SessionStore?  I'm looking at creating a class attribute in my
> object that would keep track of whether these objects have been
> bootstrapped or not.


-------------------------------------------------------
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click
_______________________________________________
Webware-discuss mailing list
Webware-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/webware-discuss

Reply via email to