[squeak-dev] Starting processes from Squeak makes Raspbian unwilling to start another process

Herbert König herbertkoenig at gmx.net
Sat Feb 7 17:11:16 UTC 2015


I managed to make Raspbian unwilling to open any new process. Neither in 
the X session, nor from Squeak nor from a SSH session.
It seems I create Zombie processes (what is that, in the SSH session I 
ran top and it reports thousands of zombies).

What I do: I poll a GPIO pin every 100ms. When it is high I query I2C via:
(PipeableOSProcess command: 'i2cget -y ', busNo, ' ', address) output

and when I find a certain bit set, I switch on some LEDs via:
current := ExternalUnixOSProcess command: 'i2cset -y ', busNo, ' ', 
address, ' ', aString.
OSProcess thisOSProcess unregisterChildProcess: current. "This doesn't 
unregister the process?????"
current := nil.

I found 2700++ instances of ExternalOSProcess, emptied the Dictionary 
via UnixProcess>>unregisterChildProcess and it stopped when it 
accumulated to another 900+ instances.

This ran for half a day until It can't start another process. First I 
thought this was the Raspbian update for the PasPi B2 but now I 
reproduced it on a Pi A+ last updated mid January.

Having read Wikipedia on Zombie Process it seems, that I should try to 
kill each process I started?
What do I do to the PipeableOSProcess? closePipes? release?



More information about the Squeak-dev mailing list