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

Reply via email to