[squeak-dev] All mczs have disappeared from source.squeak.org

David T. Lewis lewis at mail.msen.com
Fri Oct 7 22:48:20 UTC 2022


On Fri, Oct 07, 2022 at 08:51:39PM +0200, Jakob Reschke wrote:
> Can someone explain why Squeaksource has so many file descriptors open?
> Naively I would expect that it writes versions and occasionally reads
> versions, but not 1000 at at time... what else?
> 

SqueakSource does /not/ use that many file descriptors. For example,
here are the open descriptors on squeaksource.com a few minutes ago:

squeaksourcecom at dan:~$ ls -lt /proc/`pgrep squeak`/fd
total 0
lr-x------ 1 squeaksourcecom www-data 64 Oct  7 22:32 0 -> /dev/null
lrwx------ 1 squeaksourcecom www-data 64 Oct  7 22:32 1 -> 'socket:[18896859]'
lrwx------ 1 squeaksourcecom www-data 64 Oct  7 22:32 10 -> 'socket:[109381571]'
lrwx------ 1 squeaksourcecom www-data 64 Oct  7 22:32 11 -> 'socket:[18901816]'
lrwx------ 1 squeaksourcecom www-data 64 Oct  7 22:32 12 -> 'socket:[20999522]'
lrwx------ 1 squeaksourcecom www-data 64 Oct  7 22:32 13 -> 'socket:[21013080]'
lrwx------ 1 squeaksourcecom www-data 64 Oct  7 22:32 14 -> 'socket:[103673570]'
lrwx------ 1 squeaksourcecom www-data 64 Oct  7 22:32 15 -> 'socket:[106684774]'
lrwx------ 1 squeaksourcecom www-data 64 Oct  7 22:32 2 -> 'socket:[18896859]'
lr-x------ 1 squeaksourcecom www-data 64 Oct  7 22:32 3 -> /srv/squeaksourcecom/SqueakSource/VM/sqcogspur64linux/lib/squeak/5.0-202004301740
lr-x------ 1 squeaksourcecom www-data 64 Oct  7 22:32 4 -> /srv/squeaksourcecom/SqueakSource/squeaksource.8.image
lr-x------ 1 squeaksourcecom www-data 64 Oct  7 22:32 5 -> /srv/squeaksourcecom/SqueakSource/SqueakV50.sources
lrwx------ 1 squeaksourcecom www-data 64 Oct  7 22:32 6 -> /srv/squeaksourcecom/SqueakSource/squeaksource.8.changes
lrwx------ 1 squeaksourcecom www-data 64 Oct  7 22:32 7 -> 'socket:[18899255]'

This is fairly typical. If the number of descriptors goes up over
time, it reflects bugs in the socket handling code in SqueakSource.
Basically it would be some condition where the socket was not
properly closed from the Squeak image.

In past years, when squeaksource.com was running on much older
base images and VMs, there was a tendency to leak socket handles.
Things have gotten better over the years.

The socket leak monitor that I added was done many years ago after
I got tired of logging in to check for socket leaks. It worked
fine then, and it still works today although it may not really
be necessary any more.

I don't know what happened on source.squeak.org but possibly
there is some new source of descriptor leaks that we'll need
to keep any eye on. For the moment it seems to be fine.

Dave



More information about the Squeak-dev mailing list