VM freeze and crash when saving

David T. Lewis lewis at mail.msen.com
Thu Apr 5 11:32:08 UTC 2007


On Thu, Apr 05, 2007 at 11:03:25AM +0200, Florian Minjat wrote:
> Hi,
>   I have experienced some problems with my production image and VM.
>   I use a unixshell server (Linux 2.6.16.13-xenU #1 SMP Sat May 13 
> 14:18:58 EDT 2006 i686 GNU/Linux).
>   My VM is the last one I got using an apt-get install squeakvm :
> $ squeakvm -version
> 3.9-7 #1 Sun Dec 31 00:39:01 CET 2006 gcc 3.3.5
> Squeak3.9alpha of 4 July 2005 [latest update: #7021]
> Linux sarge 2.6.8-3-686 #1 Tue Dec 5 21:26:38 UTC 2006 i686 GNU/Linux
> 
>   My image is built with a Squeak3.9-final-7067 base with some 
> up-to-date packages : PreferenceBrowser, Vassili's Regex, Seaside.
> 
>   The crash : I use an internal image database. My application has 
> two database updates per days. So just before and after the update, I 
> save the image, and I save the database using a SmartRefStream to 
> create a timestamped file. The application si based on seaside.
>   And regularly the image freeze completely (ie seaside website don't 
> even respond), or partially (I can browse the site). But i both cases, 
> trying to save of the image or save of the bdd just make the image use 
> 100% of the cpu. No save is possible. An example using top :

Florian,

I cannot help with the actual problem you are having, but I can
suggest a workaround to prevent the production image getting hung.
If you do your saves in a forked background image, the production
image should keep running even if the background image hangs. You
will still need to monitor the system and kill the hung images
when it happens, but at least the production image could keep
running. Actually, you could have the production image keep track
of the forked image, and terminate it after a minute or so if it
has not yet exited; that way you would not need to monitor it
manually.

See UnixProcess class>>saveImageInBackground:nice: for an example
of how to do it. This is in OSProcess (on SqueakMap).

HTH,
Dave




More information about the Squeak-dev mailing list