mutual exclusion: WAProcessMonitor critical:ifError

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

mutual exclusion: WAProcessMonitor critical:ifError

Luc Damas

Hi all,

Sometimes, seaside does not respond. The process monitor (VW) contains :

WAProcessMonitor critical:ifError

What is this?
How can I pass through?

Thanks,
Luc


_______________________________________________
Seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

Re: mutual exclusion: WAProcessMonitor critical:ifError

Michel Bany

On 19 May 2006, at 08:21 , Luc Damas wrote:

>
> Hi all,
>
> Sometimes, seaside does not respond. The process monitor (VW)  
> contains :
>
> WAProcessMonitor critical:ifError
>
> What is this?

This happens sometimes as the result of using the debugger for  
writing code.
I must confess that I do not know either how to reproduce at will nor  
how to fix it.

> How can I pass through?

I use this dirty trick to circumvent this issue : in the process  
monitor, select the process
that is blocked, and debug it. In the debugger, send #signal to the  
"mutex" instance variable
of the WAProcessMonitor object, then resume the process using the  
"Run" button.

This should be enough in most cases.

Bon courage,
Michel.
_______________________________________________
Seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

Re: mutual exclusion: WAProcessMonitor critical:ifError

Luc Damas

>> Sometimes, seaside does not respond. The process monitor (VW) contains :
>>
>> WAProcessMonitor critical:ifError
>>
>> What is this?
>
> This happens sometimes as the result of using the debugger for writing
> code.
> I must confess that I do not know either how to reproduce at will nor
> how to fix it.

It appears especially when I launch a "complex" process when rendering
("complex" is long and UI on the server (progress bars)).
It appears when refreshing the page with the navigators'button.
I fork this complex process and it seems to work better! :-)


>> How can I pass through?
>
> I use this dirty trick to circumvent this issue : in the process
> monitor, select the process
> that is blocked, and debug it. In the debugger, send #signal to the
> "mutex" instance variable
> of the WAProcessMonitor object, then resume the process using the "Run"
> button.
> This should be enough in most cases.


Yes. I did this. I can also kill the process and manually refresh the
page. But these solutions are available during developpment. When the
users, far far away with its browser, have a frozen page, he can not
open the debugger.

Currently searching for a solution...

_______________________________________________
Seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

RE: mutual exclusion: WAProcessMonitor critical:ifError

Bany, Michel
In reply to this post by Luc Damas
 
> It appears especially when I launch a "complex" process when
> rendering ("complex" is long and UI on the server (progress bars)).
> It appears when refreshing the page with the navigators'button.

Ah, this is different. If the amount of processing done by your
"complex" process is very large, then it is normal that Seaside does not
respond and the process monitor shows WAProcessMonitor>>critical:ifError
while the "complex" process is running.

In such situations, if the user gets impatient and tries the navigator's
refresh button, then a second HTTP request is sent for the same Seaside
session while the first HTTP request with the "complex" process is still
being processed. The second HTTP request is suspended by the
WAProcessMonitor
until the "complex" process is complete. Seaside is designed that way.

Rather than using the navigator's refresh button, you can also use the
"Terminate" link in the toolbar at the bottom.

HTH,
Michel.

_______________________________________________
Seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

Re: mutual exclusion: WAProcessMonitor critical:ifError

Luc Damas

Yes!
It is OK.
I fork my process and display a message: "running..."
Thanks !

Bany, Michel a écrit :

>  
>> It appears especially when I launch a "complex" process when
>> rendering ("complex" is long and UI on the server (progress bars)).
>> It appears when refreshing the page with the navigators'button.
>
> Ah, this is different. If the amount of processing done by your
> "complex" process is very large, then it is normal that Seaside does not
> respond and the process monitor shows WAProcessMonitor>>critical:ifError
> while the "complex" process is running.
>
> In such situations, if the user gets impatient and tries the navigator's
> refresh button, then a second HTTP request is sent for the same Seaside
> session while the first HTTP request with the "complex" process is still
> being processed. The second HTTP request is suspended by the
> WAProcessMonitor
> until the "complex" process is complete. Seaside is designed that way.
>
> Rather than using the navigator's refresh button, you can also use the
> "Terminate" link in the toolbar at the bottom.
>
> HTH,
> Michel.
>
> _______________________________________________
> Seaside mailing list
> [hidden email]
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>
>


--
-------------------------
Luc Damas
Assistant professor
Condillac, LISTIC, ESIA
University of Savoie
France
http://ontology.univ-savoie.fr/luc.damas

_______________________________________________
Seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside