objects added via ZEO ClientStorage not making it into the DB

Bill Janssen <[email protected]>
Newsgroups gmane.comp.web.zope.zodb
Message-ID <[email protected]>
I'm seeing missing objects.

Here's my scenario.  Python 2.7.11 on Ubuntu 15 (and 16), ZODB 4.2, ZEO 
3.7.0b3.  I start a parent process; it sets up a ZEO server, then uses 
multiprocessing.Process to start a child process.  The child uses 
ClientStorage to connect to the server, then adds an object.  The object 
has a UUID attribute.  The child calls transaction.commit().  Everything 
seems good.  The child exits.  The parent notices that the child has 
exited, and connects to the ZEO server with another ClientStorage client.  
It looks for an object in the DB with the UUID.  Not found.  The parent 
exits.

I then shut down the ZEO server, and connect directly to the DB with 
FileStorage.  No object with that UUID attribute.

I can add an object via ZEO ClientStorage directly (in a top-level process) 
with no problems.  I've only observed this issue with the 
multiprocessing.Process.  Perhaps this has to do with the number of 
module-level variables salted away by ZODB and ZEO, like 
transaction.manager; probably don't really want them to persist after a 
fork?  How does transaction.manager, for instance, know what Connection is 
doing what?

Bill

-- 
You received this message because you are subscribed to the Google Groups "zodb" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
For more options, visit https://groups.google.com/d/optout.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.