PR# 11075 Windows Eiffel program crashes when spawned

Problem Report Summary
Submitter: ifdefmoose
Category: Runtime
Priority: Medium
Date: 2006/08/25
Class: Bug
Severity: Non-critical
Number: 11075
Release: 5.4 through 5.6
Confidential: No
Status: Open
Responsible:
Environment: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322; InfoPath.1; .NET CLR 2.0.50727)
Synopsis: Windows Eiffel program crashes when spawned

Description
On Windows, when spawning an Eiffel program with the the Win32 CreateProcess call, if the call specifies any inheritable handles for stdout and/or stederr without also specifying a handle for stdin, the spawned Eiffel program crashes with an access violation: 
------------------------------------------------------------------------------
Class / Object      Routine                Nature of exception          Effect
------------------------------------------------------------------------------
ARGS                root's creation        Segmentation violation:
<0000000000960048>                         Operating system signal.     Exit
-------------------------------------------------------------------------------
ARGS                root's creation                                    
<0000000000960048>                         Routine failure.             Exit
-------------------------------------------------------------------------------

This occured with Eiffel 5.4 through 5.6.1218. I haven't tried it with 5.7

Workaround: pass a handle for stdin created by opening NUL:  
To enable the workaround, uncomment the assignment
   --l_si.set_std_input (l_inp_fhand)
at line 198 in TEST_SPAWNER (attached)

Note: this does not happen when spawning a C program. I have attached a class to demonstrate the problem (TEST_SPAWNER), as well as an Eiffel class (ARGS) and a C program (args.c) that I used as test objects to spawn.
To Reproduce

										
Problem Report Interactions
From:ifdefmoose    Date:2006/08/25    Download   
Attachments for problem report #11075

Attachment: c:\temp\spawn_bug.zip     Size:7860