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
