#670 Tcl 8.0 on Windows ignores pipe errors

obsolete: 8.0.3
closed-fixed
nobody
2
2001-04-02
2000-10-26
Anonymous
No

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

Discussion

  • Brent B. Welch

    Brent B. Welch - 2000-10-26
    • priority: 5 --> 2
    • status: open --> closed-fixed
     
  • Don Porter

    Don Porter - 2001-04-02
    • labels: 104247 --> 27. Channel Types