[Erp5-dev] Delayed reindex, workflow script and acquisition

Bartek Górny bartek at gorny.edu.pl
Sat Nov 13 10:20:25 CET 2010


On Sat, 13 Nov 2010 09:18:11 +0100
jp at nexedi.com wrote:

> Hi,
> 
> In order to progress in a useful manner, I suggest you to do as
> follows.
> 
> 1- write unit test which simulates what you describe and shows the
> problem 2- send it to the list
> 
> This is how we did ourselves when we had similar issues (which are
> normally fixed in recent versions).
> 

This goes back to my other email - the test to show the problem would
be like:

doSomething
doAnotherThing
self.tic()
check

to show what happens if "another thing" is done before the activities
go through. I don't know any other way to reproduce this problem in
tests.

Bartek

> Regards,
> 
> JPS.
> 
> 
> > Hi
> > 
> > I ran into a tricky issue caused by delayed reindexing and
> > fast-clicking users. Here is the scenario:
> > 
> > - there is a Document, which has some Lines
> > - Document is a member of a Category
> > - Lines acquire membership of a Category from their parent
> > (Document)
> > - he Document belongs to a Workflow
> > - upon transition, the Workflow triggers a Script
> > - the Script iterates over Lines doing something to which it uses
> >   Category
> > 
> > Now what happens is:
> > - a user changes Category on Document and saves it
> > - then he executes workflow transition
> > 
> > The result is that the Script in most cases uses the new value of
> > Category, but sometimes it uses the old value. This is because
> > acquisition goes through portal catalog. If a users clicks through
> > workflow transition fast enough, before the reindexing is complete
> > (which is not uncommon), the outcome is confusion: scripts are ok,
> > they pass all tests, user did everything right, all data is
> > correct, only the goods went to a wrong warehouse.
> > 
> > Now, the only way I found to prevent it is to make the Script get a
> > category explicitly from parent (.getParent().getThisCategory()),
> > though it is only a workaround. The question is, where is the real
> > problem? I wrote a simple code, using legal techniques and basic
> > API, the application passed every test, the result was bad.
> > Therefore, there is a flaw in the core which we should nail down
> > and fix.
> > 
> > Bartek
> > _______________________________________________
> > Erp5-dev mailing list
> > Erp5-dev at erp5.org
> > http://mail.nexedi.com/mailman/listinfo/erp5-dev
> > 



More information about the Erp5-dev mailing list