Issue Type: Bug Bug
Assignee: Kohsuke Kawaguchi
Components: remoting
Created: 03/Oct/14 9:23 PM
Description:

FilePath.read() will set up the chain of streams like the following:

FastPipedInputStream
  ^
  |
FastPipedOutputStream
  ^ (exported over channel)
  |
RemoteOutputStream
  ^
  |
(thread that pumps IS->OS; Callable in the read method)
  ^
  |
FileInputStream

When the channel is lost due to an error, or closed in the middle, then nobody closes FastPipedOutputStream, so the reading end hangs forever.

Somehow we need to call FastPipedOutputStream.error, so that the reader side gets the error.

Also, it is common for the return value from FilePath.read() to be simply pumped into another OutputStream. For this, it is preferable to have FilePath.writeTo() method, and we can avoid creating unnecessary pipe here.

Project: Jenkins
Priority: Minor Minor
Reporter: Kohsuke Kawaguchi
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators.
For more information on JIRA, see: http://www.atlassian.com/software/jira

--
You received this message because you are subscribed to the Google Groups "Jenkins Issues" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-issues+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to