On Fri, Nov 20, 2009 at 09:45:48AM +0100, Adrian Lienhard wrote:
> Hi Dave,
> 
> On Nov 20, 2009, at 02:42 , David T. Lewis wrote:
> 
> [...]
> 
> > I am getting serious failures on CommandShellTestCase that still worry
> > me. For example, if I evaluate this (on Linux VM with Pharo image):
> >
> >  (CommandShellTestCase selector: #testEvaluateOrMakePipelinesFrom)  
> > debug
> 
> Indeed, CommandShellTestCase isn't that stable as I first thought.  
> I've run all tests of CommandShellTestCase in the Test runner multiple  
> times:
> 
> 1. run: all green
> 2. run: error in testPipeline75 (re-running this test succeeded, so I  
> don't know what the error was)
> 3. run: test runner hangs in testIfThenElse02 because indefinitely  
> waiting on completionSemaphore in #evaluatePipelines:
> 
> restarted the VM
> 1. run: all green
> 2. run: same as 3 above
> 3. run: same as 3 above
> 4. run: error in testPipeline72
> 5. run: all green
> 
> I haven't seen any defunct processes, though.
> 
> [...]
> 
> > Second question:
> >
> > Some of the failures you are getting look like things that I thought
> > that I had fixed in the past (but I'm not sure). The latest versions
> > from the SqueakSource repositories should be:
> >
> >  OSProcess-dtl.53
> >  Tests-OSProcess-dtl.20
> >  CommandShell-dtl.40
> >  Tests-CommandShell-dtl.14
> 
> I have the same versions except for CommandShell-dtl.39 (I updated to  
> 40 now).
> 
> Let me know if I can be of any more help.

Hi Adrian,

Overall, it does look like the basic OSProcess functions that most people
would use are working as long as an up to date plugin is available.

The remaining issue that is relevant to the Pharo image (as opposed to
OSProcess running on any other image) is this CommandShellTestCase issue.
I think we are seeing different, but presumably related, symptoms of some
underlying problem. The tests in CommandShellTestCase do some rather complex
things with lots of processes, semaphore synchronization and so on. So I
think I will need to somehow whittle the problem down to some simpler test
that can provide some more reproduceable symptoms.

My working assumption is that one of the following is true:

1) There is something different in Pharo versus Squeak that is exposing
an existing bug in OSProcess/CommandShell. This is quite likely.

2) The CommandShellTestCase is exposing an issue in Pharo related to
Semaphore handling, Delay scheduling, or Process scheduling. The seems
less likely than #1, but still possible because these tests do drive
a lot of interacting processes, and might expose an issue the "normal"
users would never see.

One thing that I know could produce the sort of symptoms that I am seeing
would be anything that intermittently permitted a signal to a Semaphore
to be missed. This type of problem causes OSProcess to "miss" the exit
of one of its external processes, leading to zombie Unix processes and
tests in Pharo/Squeak that fail to run to completion.

For that reason, if anyone can think of any changes to process scheduling
and semaphore handling, that might give me an idea of where to look.

Thanks for all the help,
Dave


_______________________________________________
Pharo-project mailing list
[email protected]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

Reply via email to