JDK-6631966 : (process) Raise Windows pipe buffer size an extra 24 bytes (win)
  • Type: Bug
  • Component: core-libs
  • Sub-Component: java.lang
  • Affected Version: 7
  • Priority: P3
  • Status: Resolved
  • Resolution: Fixed
  • OS: generic
  • CPU: generic
  • Submitted: 2007-11-20
  • Updated: 2013-06-22
  • Resolved: 2008-03-22
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 6 JDK 7
6u35Fixed 7 b25Fixed
Related Reports
Relates :  
Description
The intent of the bug fix for

6523983: (process) Raise Windows pipe buffer size (win)

was that every system had at least a 4095 least common denominator
pipe buffer size, for compatibility and performance.

A testlet was added to test/java/lang/ProcessBuilder/Basic.java
to ensure that 4095 bytes could be written between subprocesses without deadlock.

However, at least some Windows systems (Windows 2000) inexplicably 
appears to need an extra 24 bytes of slop to avoid deadlock. 

The size of the pipe buffer as passed to CreateProcess should be raised by 24 bytes.

Comments
EVALUATION Yes. -#define PIPE_SIZE 4096 +// We try to make sure that we can read and write 4095 bytes (the +// fixed limit on Linux) to the pipe on all operating systems without +// deadlock. Windows 2000 inexplicably appears to need an extra 24 +// bytes of slop to avoid deadlock. +#define PIPE_SIZE (4096+24)
20-11-2007