apache/hadoop · error · IOException
The stream is closed
Error message
The stream is closed
What it means
Error "The stream is closed" thrown in apache/hadoop.
Source
Thrown at hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/net/SocketOutputStream.java:117
}
@Override
public void write(int b) throws IOException {
/* If we need to, we can optimize this allocation.
* probably no need to optimize or encourage single byte writes.
*/
byte[] buf = new byte[1];
buf[0] = (byte)b;
write(buf, 0, 1);
}
@Override
public void write(byte[] b, int off, int len) throws IOException {
ByteBuffer buf = ByteBuffer.wrap(b, off, len);
while (buf.hasRemaining()) {
try {
if (write(buf) < 0) {
throw new IOException("The stream is closed");
}
} catch (IOException e) {
/* Unlike read, write can not inform user of partial writes.
* So will close this if there was a partial write.
*/
if (buf.capacity() > buf.remaining()) {
writer.close();
}
throw e;
}
}
}
@Override
public synchronized void close() throws IOException {
/* close the channel since Socket.getOuputStream().close()
* closes the socket.
*/View on GitHub (pinned to 2add963021)
Solutions
- Do not write to the stream after close() has been called; check the calling code for use-after-close.
- Ensure only one thread closes the stream and that writes are synchronized with the close operation.
- Reconnect and obtain a new stream if the connection was closed due to a prior error or timeout.
When it happens
Trigger: Thrown at hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/net/SocketOutputStream.java:117 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of apache/hadoop@2add963021 (2026-08-22).
Data as JSON: /api/errors/7bf3f650b780217f.
Report an issue: GitHub.