[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
Hi,
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?
Thanks,
Herbert
More information about the Squeak-dev
mailing list
|