Stability opf Squeak on Linux

Lex Spoon lex at cc.gatech.edu
Fri Nov 10 16:03:26 UTC 2000


"Jochen F. Rick" <nadja at cc.gatech.edu> wrote:
> We are running ComSwiki on both Solaris and Linux and find them very 
> stable. In Solaris, you should increase the number of sockets that a 
> user-run program is allowed to use from 64 to 1024. This helps stability 
> a huge amount.
> 

Yeah, seconded on the file descriptors.  The following command,
if I got it right, will increase the limit for all commands run from
the same command prompt:

	ulimit -SHn 1024


The default is 64 files.  Note this must be run as root.


Also, if you are on Solaris, there is a problem with listing files in a
directory.  This is theoretically a problem on all Unices and for
several operations, but it seems to particularly come up on Solaris for
file-directory listing.  The fix is simple, but no one has gone around
and applied it everywhere.  On the only line in sqUnixDirectory.c that
invokes readline(), change it to:

     do { errno=0; dirEntry= readdir(openDir); }  while(dirEntry==0 && errno==EINTR);


If I dimly recollect, this, too, caused trouble for us with Swikis,
because they tend to have large directories.


> Also, you can try Lex's Unix VM, which seems to have better networking 
> and takes care of a couple of file server problems. You can get it at
> http://www.prism.gatech.edu/~gt4510b/work/cs/
> Squeak is the regular VM, Squeakh is the headless VM. (this is just Linux)
> Let me know if you need the Solaris VM.

Thanks for posting this; it's one configuration that works.  Rob Wither's stuff
is more compatible with newer Squeak's, however.  Although, to make
things complicated, it looks like the CVS networking file is different
from Ian's networking file, which is in turn different from Rob Wither's
file.  Ack!  Hopefully 2.9 will eventually settle down....

Anyway, the thing to really beware of is an old enough VM that doesn't
even support BSD-style socket listening.  With such an old version, you
will get occasional connection refused's even though the server is up,
and you will find it impractical to serve image files off the same
server as the Swiki.  To see if you have such a version, look in
sqUnixNetwork.c and see if you struct privateSockStruct includes a
member acceptedSock.  If it does, it's got BSD-style socket listening.

-Lex





More information about the Squeak-dev mailing list