-
Notifications
You must be signed in to change notification settings - Fork 1.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Provided PipedInputStream should not be closed #3243
Comments
@pdudits : Thanks for reporting this, Would it be possible for you to contribute a fix for this issue? |
I can try, should be ok as long as I don't hit major obstacles in building (for example, master doesn't seem to compile on
|
… loss Closing provided stream is task of the client. This also caused data loss when stream was closed before client would fully read available contents of the buffer.
… loss Closing provided stream is task of the client. This also caused data loss when stream was closed before client would fully read available contents of the buffer.
… loss Closing provided stream is task of the client. This also caused data loss when stream was closed before client would fully read available contents of the buffer.
Closing provided stream is task of the client. This also caused data loss when stream was closed before client would fully read available contents of the buffer.
As reported in #2497 and #1896 utilizing
readingOut
andreadingErr
to capture execution output looses last chunk of data.This is caused by
ExecWebSocketListener
closing both providedPipedInputStream
as well as producingPipedOutputStream
.When
PipedOutputStream
is closed, it only notifies connectedPipedInputStream
that no more data will be transferred.PipedInputStream
would still make the rest of its buffer available.However as soon as
close
is invoked onPipedInputStream
its buffer pointer is reset and any further attempt to read will cause anIOException("Pipe closed")
.This causes data loss and exceptions thrown to client, and the workaround is to suppress call to
close()
:The text was updated successfully, but these errors were encountered: