- priority: 5 --> 2
- status: open --> closed-fixed
OriginalBugID: 952 Bug
Version: 8.0.3
SubmitDate: '1998-12-14'
LastModified: '1999-10-19'
Severity: SER
Status: Released
Submitter: pat
ChangedBy: hobbs
OS: Windows NT
OSVersion: 4.0
Machine: X86
FixedDate: '1999-10-19'
FixedInVersion: 8.2
ClosedDate: '2000-10-25'
Name:
Marco R. Gazzetta
Extensions:
DP, Itcl, Img
CustomShell:
tons of changes, but none related to the problem
ReproducibleScript:
tclsh
set f [ open "|tclsh" r+ ]
[... kill the tclsh externally ...]
flush $f
[... system gets to 100% workload because flush is ignoring errors ...]
ObservedBehavior:
see above
the relevant information is in the file tclWinChan.c and tclWinPipe.c. There, we see things like:
TclWinConvertError(GetLastError());
if (errno == EPIPE) {
return 0;
}
where EPIPE is a placeholder for all pipe errors.
This behavior doesn't make sense. Removing the incriminated lines seems to bring relief, but we need to know if there is any reasons for those lines to show up.
--
8.2.0 adds PIPE_EOF to the flags, and has many other rewrites
to fix these problems.
-- 10/19/1999 hobbs