[GHC] #3808: piping binary files sometimes fail
GHC
trac at galois.com
Thu Jan 7 07:08:44 EST 2010
#3808: piping binary files sometimes fail
-------------------------------+--------------------------------------------
Reporter: paolino | Owner:
Type: bug | Status: new
Priority: normal | Milestone:
Component: Compiler | Version: 6.12.1
Resolution: | Keywords: pipe binary IO
Os: Linux | Testcase:
Architecture: x86_64 (amd64) | Failure: None/Unknown
-------------------------------+--------------------------------------------
Changes (by Baughn):
* cc: sveina at gmail.com (added)
Comment:
I'd like to add that
- If you write the output of prod to a file, and then read it in, cons
doesn't fail.
- If you write the output of prod to a file, and read it in through pipe
as in 'cat output | ./cons', cons doesn't fail.
- If you simplify prod, using [0..] instead of fibs, cons hasn't failed
either.
This suggests that the bug is timing-dependent, which doesn't seem
plausible on the face of it. However, one way in which pipes are timing-
dependent is that the read() system call can return incomplete data when
reading from pipes (although not when reading from files, at least on
linux). Therefore, it would be useful to consider what happens when read
does return incomplete data.
Regardless of the exact circumstances, the bug itself is one that should
never happen. Reading bytestrings uses the binary hGetBuf function, and
should always ignore encoding; thus, no encoding error should be produced.
--
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/3808#comment:1>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the Glasgow-haskell-bugs
mailing list