Seán Coffey wrote:
bug ID : http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7101658
(bug report not visible yet)
changes for 7082769 fix have led to behavioral changes which can lead
to native file descriptor exhaustion. Basically - file descriptors are
not released until all streams referencing them are closed.
For the short term, we should backout the 7082769 changes until a full
solution which doesn't cause issue in terms of compatibility is found.
I'm hoping to get this change into 7u2.
webrev : http://cr.openjdk.java.net/~coffeys/webrev.7101658/
The anti-delta looks fine.
[ As background I should explain that I asked Seán off-list to back out
these changes because it means that closing a stream that is sharing a
file descriptor with another stream no longer closes the underlying file
as existing code expects. In order to fix 7082769 properly it will
likely require that FileDescriptor be changed to keep a reference to
each of the closeables (stream and channels) that use it. That way when
a stream is closed then it will cause all stream and channels using the
file descriptor to be closed. This should be fixed in 8 first and bake
for a while before considering 7u. In the mean-time 7u needs to be
resorted to fix the current regression ].
-Alan.