This is the mail archive of the
cygwin
mailing list for the Cygwin project.
proc_waiter: error on read of child wait pipe
- From: Denis Excoffier <cygwin at Denis-Excoffier dot org>
- To: cygwin at cygwin dot com
- Date: Fri, 4 Nov 2011 13:28:41 +0059
- Subject: proc_waiter: error on read of child wait pipe
Hello,
I have all the packages up to date, and also the last Cygwin snapshot:
jupiter% cat /proc/version | tr -d '\100'
CYGWIN_NT-5.1 version 1.7.10s(0.254/5/3) (cgf) (gcc version 4.3.4 20090804 (release) 1 (GCC) ) 20111030 04:51:42
jupiter%
I have compiled the last upstream tcsh (tcsh-6.17.06.tar.gz) with all default options.
and installed the newly compiled tcsh into /bin/tcsh-6.17.06 for testing.
I can now experience the following strange message:
jupiter% /usr/bin/env -i PATH=/usr/bin /bin/tcsh-6.17.06 -fc 'set bar = `echo foo | wc -c`'
2 [proc_waiter] wc 2840 proc_waiter: error on read of child wait pipe 0x708, Win32 error 6
jupiter%
wc seems to be able to be replaced by anything else, with the same message:
jupiter% /usr/bin/env -i PATH=/usr/bin /bin/tcsh-6.17.06 -fc 'set bar = `echo foo | cat`'
330 [proc_waiter] cat 3912 proc_waiter: error on read of child wait pipe 0x708, Win32 error 6
jupiter%
And the result seems ok:
jupiter% /usr/bin/env -i PATH=/usr/bin /bin/tcsh-6.17.06 -fc 'set bar = `echo foo | tr o a`; echo $bar'
243 [proc_waiter] tr 2892 proc_waiter: error on read of child wait pipe 0x708, Win32 error 6
faa
jupiter%
On the other hand, the following variations don't produce the message:
/usr/bin/env -i PATH=/usr/bin /bin/tcsh-6.17.06 -fc 'set bar = `/usr/bin/echo foo | wc -c`'
/usr/bin/env -i PATH=/usr/bin /bin/tcsh-6.17.06 -fc 'echo foo | wc -c'
/usr/bin/env -i PATH=/usr/bin /bin/tcsh -fc 'set bar = `echo foo | wc -c`'
When the number of pipes increases, the result is not so easily predictable (or reproducible):
jupiter% /usr/bin/env -i PATH=/usr/bin /bin/tcsh-6.17.06 -fc 'set bar = `cat /proc/version | cat | wc -c`'
jupiter% /usr/bin/env -i PATH=/usr/bin /bin/tcsh-6.17.06 -fc 'set bar = `cat /proc/version | cat | cat | wc -c`'
3 [main] wc 260 child_info_spawn::reattach_children: couldn't duplicate parent 0x6A0 handles for forked children after exec, Win32 error 6
177 [main] wc 260 _pinfo::dup_proc_pipe: DuplicateHandle failed, pid 2884, hProcess 0x708, wr_proc_pipe 0x700, Win32 error 5
270 [main] wc 260 child_info_spawn::reattach_children: couldn't duplicate parent 0x658 handles for forked children after exec, Win32 error 6
345 [main] wc 260 _pinfo::dup_proc_pipe: DuplicateHandle failed, pid 2720, hProcess 0x6F8, wr_proc_pipe 0x6F0, Win32 error 5
(there seems to be another effect)
jupiter% /usr/bin/env -i PATH=/usr/bin /bin/tcsh-6.17.06 -fc 'set bar = `cat /proc/version | cat | cat | cat | wc -c`'
1 [proc_waiter] wc 2908 proc_waiter: error on read of child wait pipe 0x6F8, Win32 error 6
jupiter% /usr/bin/env -i PATH=/usr/bin /bin/tcsh-6.17.06 -fc 'set bar = `/usr/bin/echo foo | cat | wc -c`'
1 [proc_waiter] wc 3908 proc_waiter: error on read of child wait pipe 0x708, Win32 error 6
Compilation of tcsh under GCC-4.5.3 (Cygwin default) or GCC-4.6.2 has the same effect.
Use of tcsh-6.17.04, tcsh-6.17.05 and tcsh-6.17.06 all have the same effect.
But tcsh-6.17.00 (upstream) or tcsh-6.17.00.1-1 (patched by CV) do not exhibit the message.
(i have currently no access to tcsh-6.17.01, tcsh-6.17.02 and tcsh-6.17.03)
The message appeared with the 2011-10-26 snapshot (was not there with the 2011-10-23 snapshot).
Of course, the decorations '/usr/bin/env -i PATH=/usr/bin /bin/tcsh-6.17.06 -fc' are not really
needed. If your shell is tcsh-6.17.06, the result is:
jupiter% echo `echo foo | wc -l`
5 [proc_waiter] wc 732 proc_waiter: error on read of child wait pipe 0x720, Win32 error 6
1
jupiter%
Is somebody able to reproduce this?
Regards,
Denis Excoffier.
--
Problem reports: http://cygwin.com/problems.html
FAQ: http://cygwin.com/faq/
Documentation: http://cygwin.com/docs.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple