I took another try using a unix VM (3.11.3.2135 compiled from source) on OS X 10.5.8. It has the plugin version 4.3.3. Looks much better than with the Mac VM that has the outdated plugin!
409 run, 389 passes, 0 expected failures, 20 failures - The VM does not crash anymore - There are a couple of errors that go away if I change #useOldNetwork to return true - The following tests seem to fail due to assumptions about files and permissions that do not hold on OS X: ShellSyntaxTestCase>>#testExpandArgument03 ShellSyntaxTestCase>>#testExpandArgumentFrom01 UnixProcessAccessorTestCase>>#testIsExecutableForUserInGroup UnixProcessAccessorTestCase>>#testIsReadableForUserInGroup UnixProcessAccessorTestCase>>#testIsWritableForUserInGroup UnixProcessAccessorTestCase>>#testChDir - one or two tests fail sometimes, but not always. For example: UnixProcessWin32FileLockingTestCase>>#testCooperatingProcesses04 - The following tests, which fork the VM, do not work: PipeableOSProcessTestCase>>#testForkHeadlessSqueak PipeableOSProcessTestCase>>#testForkHeadlessSqueak2 PipeableOSProcessTestCase>>#testForkSqueak UnixProcessTestCase>>#testClassForkHeadlessSqueakAndDo UnixProcessTestCase>>#testClassForkHeadlessSqueakAndDoThenQuit UnixProcessTestCase>>#testClassForkSqueak UnixProcessTestCase>>#testClassForkSqueakAndDo UnixProcessTestCase>>#testClassForkSqueakAndDoThenQuit UnixProcessTestCase>>#testForkHeadlessSqueakAndDo UnixProcessTestCase>>#testForkHeadlessSqueakAndDoThenQuit UnixProcessTestCase>>#testForkSqueak UnixProcessTestCase>>#testForkSqueakAndDo UnixProcessTestCase>>#testForkSqueakAndDoThenQuit UnixProcessTestCase>>#testHeadlessChild For example running #testHeadlessChild I get to stdout: hello world from child process 1359 Segmentation fault 390493624 UnixProcess>forkHeadlessSqueakAndDoThenQuit: 390493524 >forkHeadlessSqueakAndDoThenQuit: 390493400 >headlessChild 390493264 UnixProcessTestCase>testHeadlessChild 390493172 TestCase>executeShould:inScopeOf: 390493080 BlockClosure>on:do: 390492988 TestCase>executeShould:inScopeOf: 390492876 TestCase>shouldnt:raise: 390491136 UnixProcessTestCase>testHeadlessChild 390491044 TestCase>performTest 390490952 TestCase>runCase If I run #testForSqueak I get The process has forked and you cannot use this CoreFoundation functionality safely. You MUST exec(). Break on __THE_PROCESS_HAS_FORKED_AND_YOU_CANNOT_USE_THIS_COREFOUNDATION_FUNCTIONALITY___YOU_MUST_EXEC__ () to debug. The process has forked and you cannot use this CoreFoundation functionality safely. You MUST exec(). Break on __THE_PROCESS_HAS_FORKED_AND_YOU_CANNOT_USE_THIS_COREFOUNDATION_FUNCTIONALITY___YOU_MUST_EXEC__ () to debug. The process has forked and you cannot use this CoreFoundation functionality safely. You MUST exec(). Break on __THE_PROCESS_HAS_FORKED_AND_YOU_CANNOT_USE_THIS_COREFOUNDATION_FUNCTIONALITY___YOU_MUST_EXEC__ () to debug. The process has forked and you cannot use this CoreFoundation functionality safely. You MUST exec(). Break on __THE_PROCESS_HAS_FORKED_AND_YOU_CANNOT_USE_THIS_COREFOUNDATION_FUNCTIONALITY___YOU_MUST_EXEC__ () to debug. The process has forked and you cannot use this CoreFoundation functionality safely. You MUST exec(). Break on __THE_PROCESS_HAS_FORKED_AND_YOU_CANNOT_USE_THIS_COREFOUNDATION_FUNCTIONALITY___YOU_MUST_EXEC__ () to debug. The process has forked and you cannot use this CoreFoundation functionality safely. You MUST exec(). Break on __THE_PROCESS_HAS_FORKED_AND_YOU_CANNOT_USE_THIS_COREFOUNDATION_FUNCTIONALITY___YOU_MUST_EXEC__ () to debug. Segmentation fault 390953340 DisplayScreen>forceToScreen: 390953248 DisplayScreen>forceDamageToScreen: 390953124 OrderedCollection>do: 390952960 DisplayScreen>forceDamageToScreen: 390952840 WorldState>forceDamageToScreen: 390869724 WorldState>displayWorld:submorphs: 390869632 PasteUpMorph>privateOuterDisplayWorld 390869540 PasteUpMorph>displayWorld 390869448 WorldState>displayWorldSafely: 390869356 BlockClosure>on:do: 390869244 BlockClosure>ifError: 390869096 WorldState>displayWorldSafely: From these tests it seems that the critical parts of OSProcess are actually working with this configuration (modulo the forking). Adrian On Nov 19, 2009, at 06:03 , David T. Lewis wrote: > On Wed, Nov 18, 2009 at 09:44:08PM -0500, David T. Lewis wrote: >> On Wed, Nov 18, 2009 at 05:14:04PM -0500, David T. Lewis wrote: >>> On Wed, Nov 18, 2009 at 08:55:50AM -0500, Schwab,Wilhelm K wrote: >>>> Dave, >>>> >>>> It would help to knock the MVC workspace out of the offending >>>> #initialize >>>> method and re-save the packages. In my experience, that simple >>>> change make >>>> the load hassle-free vs. the current situation. >>> >>> Bill, >>> >>> Good idea, thanks. I'll take a look at that when I get home. >> >> Well actually there were not any MVC references in #initialize. But >> CommandShell class>>initialize opens a shell window, and that was >> failing >> because text style 'Atlanta' no longer exists in Pharo. I fixed this, >> so if you update to CommandShell-dtl.40.mcz that failure will no >> longer >> occur. The shell window does not actually work, but at least the >> window >> opens properly now. One bug down, ??? to go ... > > Correction, the shell window *does* seem to be working, so this is > actually looking much better now. However, the CommandShellTestCase > does not pass (hangs up part way through, lots of zombie unix > processes > left unhandled). > > The other unit tests are passing, with the exception of the tests in > AioEventHandlerTestCase that use sockets. This is due to changes in > the socket support in Pharo, but I am not worried about these failures > as they probably just require updates to the tests to match the > Pharo socket support. > > I am testing on Linux with a VM that I built locally. For OS X, an > updated OSProcessPlugin will need to be included with the VM, > otherwise > we will have VM crashes when handling external process exit. > > The main concerns now are: > > 1) Need an updated OSProcessPlugin for the Mac VM (for both Squeak > and Pharo) > > 2) Why does CommandShellTestCase on Pharo get hung up and leave > zombies? > > Note, CommandShellTestCase is a real stress test for OSProcess. It > does > a lot of concurrent process handling with pipelines of OS processes > interacting with Squeak/Pharo. If this test does not pass, then I am > not confident in the overall reliability of OSProcess. > > Dave > > > _______________________________________________ > Pharo-project mailing list > [email protected] > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project _______________________________________________ Pharo-project mailing list [email protected] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
