[Zope] External methods & persistance and thread safety

Dennis Allison allison@sumeru.stanford.EDU
Wed, 4 Jun 2003 13:08:06 -0700 (PDT)

Sorry if I was confusing.  Basically we have a through-the-web editor for
XML and other things which works with forms.  Users work within a
pre-defined structure (an outline) and create and edit portions of the
larger document.  Every user has their own sandbox where they do their 
document development.

Document content is either created by a template or checked out from CVS
by the user.  The user can also commit their workproduct to CVS.  These 
transactions are managed by External Methods.

The XML may be viewed, validated, spellchecked, and used to drive some
additonal process, the results of which may be viewed through Zope.  All
these functions are managed through External Methods.

The problem I am trying to track down is subtle.  Sometimes (twice in
three months) a file has been overwritten by another file--these are 
files in the local file system.  The logs all look right, but data has
been corrupted.  I'm trying to understand where to look for the
problem--in the past such Heissenbugs have been tied to problems in the
concurrency of the system--so I am looking there first.  

On Wed, 4 Jun 2003, Paul Winkler wrote:

> On Wed, Jun 04, 2003 at 12:03:12PM -0700, Dennis Allison wrote:
> > Dieter, you and the others on the list are the oracle.....
> > 
> > And you are right, the problem description is shallow--but that's because
> > I see only the effect--a file corrupted with the wrong data in the managed
> > CVS.  I suspect the problem lies in the persistance mechanism.  External
> > methods do inherit from the right classes for persistance,
> ... for storing the External Method object itself in the ZODB.
> > but I'm not
> > sure I have the right song & dance for mutable lists and dictionary to
> > guarantee persistance. 
> ok, now I'm really confused. 
> What does ZODB persistence have to do with checking stuff in 
> & out of CVS?  
> What are these lists & dictionaries, and why do you want them to 
> be persistent? 
> How are you trying to make them persistent?
> > If I don't, that may be the source of my problem.
> > Beyond careful inspection of the code, do you have any suggestions.
> Not enough information.
> -- 
> Paul Winkler
> http://www.slinkp.com
> Look! Up in the sky! It's  AGENT AMOEBA!
> (random hero from isometric.spaceninja.com)