You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cocoon.apache.org by "Hunsberger, Peter" <Pe...@stjude.org> on 2004/02/01 18:42:34 UTC

Are flowscript functions reentrant?

I'm still tracking this down but it would appear that I've got a case where flow script functions or some part of the sendPageAndWait processing is not reentrant.  Is this possible or are there known circumstances in which flow is not reentrant?  Could there be some reason that generators aren't reentrant when called from flowscript?  We had not problems with this particular set of pipelines prior to migrating to 2.1.3 but it turned up the first day we hit production with code using 2.1.3 Cocoon (sigh)...

So far I know that the flow script is being called from two different users with different continuations etc.  However, when this results in a call to another flowscript function that then calls send page and wait I get bad results.  The circumstances require that both calls be to the same function and subsequently to the same pipeline (via sendPageAndWait) and that the first request not complete before the second request occurs (in our case it's a long running data search that is producing the page data).  The results are that the pages that are sent to the two users contain the result set for the second user and that the first result is never returned.

Requesting a page refresh on the user that was sent the wrong data causes the correct data to be sent.  The generator in question is aggregated with many other generators that cache though it itself does not cache; turning off all Cocoon caching makes no difference.

Peter Hunsberger



Re: Are flowscript functions reentrant?

Posted by Christopher Oliver <re...@verizon.net>.
sendPage*() is not reentrant in 2.1.3. I believe this has been fixed in 
2.1.4-dev.  Can you try it?

HTH,

Chris

Hunsberger, Peter wrote:

>I'm still tracking this down but it would appear that I've got a case where flow script functions or some part of the sendPageAndWait processing is not reentrant.  Is this possible or are there known circumstances in which flow is not reentrant?  Could there be some reason that generators aren't reentrant when called from flowscript?  We had not problems with this particular set of pipelines prior to migrating to 2.1.3 but it turned up the first day we hit production with code using 2.1.3 Cocoon (sigh)...
>
>So far I know that the flow script is being called from two different users with different continuations etc.  However, when this results in a call to another flowscript function that then calls send page and wait I get bad results.  The circumstances require that both calls be to the same function and subsequently to the same pipeline (via sendPageAndWait) and that the first request not complete before the second request occurs (in our case it's a long running data search that is producing the page data).  The results are that the pages that are sent to the two users contain the result set for the second user and that the first result is never returned.
>
>Requesting a page refresh on the user that was sent the wrong data causes the correct data to be sent.  The generator in question is aggregated with many other generators that cache though it itself does not cache; turning off all Cocoon caching makes no difference.
>
>Peter Hunsberger
>
>
>
>  
>