[wpkg-users] [Bug 155] stdout/stderr flush code causes some commands to hang

bugzilla-daemon at bugzilla.wpkg.org bugzilla-daemon at bugzilla.wpkg.org
Sun Apr 26 23:37:30 CEST 2009


http://bugzilla.wpkg.org/show_bug.cgi?id=155


Rainer Meier <r.meier at wpkg.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
         Resolution|                            |FIXED




--- Comment #8 from Rainer Meier <r.meier at wpkg.org>  2009-04-26 23:37:15 ---
I've checked in a work-around for the problem. Here's the change note:

FIX: Added work-around for STDOUT/STDERR flushing problem. Unfortunately
     reading from output streams is terribly broken in WSH. Reading output from
     the streams blocks if the process does not write to the stream.
     Even reading the "AtEndOfStream" property blocks which makes it impossible
     to read from a stream which receives data without blocking the
application.
     As a work-around WPKG now makes sure STDOUT/STDERR is redirected to NUL
     to discard them completely. Well, if your command includes the strings
     " >" or " 2>" WPKG will not replace them by NUL redirects. This means you
     can still redirect the output manually to files (or redirect to NUL by
     yourself). The code just makes sure that output which would be discarded
     anyway is not even sent to the buffers.
     The drawback of this work-around is that it is not possible to capture the
     output from within WPKG and therefore it will not appear within the logs.
     However this is the same behavior as all WPKG versions (except 1.1.0-M21)
     had. So no big loss. 
     Fixes Bug 155.


You might also have a look at discussions like
<http://www.tech-archive.net/Archive/Scripting/microsoft.public.scripting.wsh/2004-10/0204.html>
which come to the same conclusion that the stream mechanism in WSH is totally
broken. So I decided to partially revert the changes done in M21. This means
that STDOUT/STDERR will no longer appear within the WPKG logs (which was the
case in all other versions anyway) but WPKG will make sure (or try) that the
buffers are not getting filled up by redirecting directly to NUL.

So this change is fixing the problem that commands just "block" or appear to
"hang" after filling up the buffers.

As always you might get the latest version from here:
<http://wpkg.svn.sourceforge.net/viewvc/wpkg/wpkg/current-development/>.

I am setting this to "fixed" because the main problem (hanging of commands due
to full buffers) should be solved.


-- 
Configure bugmail: http://bugzilla.wpkg.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.



More information about the wpkg-users mailing list