[JIRA] Reopened: (JENKINS-8592) FilePath.read() triggers remote issues if the file is not read until EOF (Pipe is already closed)

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

[JIRA] Reopened: (JENKINS-8592) FilePath.read() triggers remote issues if the file is not read until EOF (Pipe is already closed)

JIRA noreply@jenkins-ci.org

     [ http://issues.jenkins-ci.org/browse/JENKINS-8592?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

glundh reopened JENKINS-8592:
-----------------------------


According to the Issue-discussion in the mailing-list, issues should only be marked as fixed when the changes is released. And since the last round of patches (Kohsuke's + your review patch) is not released, I propose we keep it open (due to the sake of traceability).

I hope this is OK (yes, this specific issue matters quite greatly to me ;))

> FilePath.read() triggers remote issues if the file is not read until EOF (Pipe is already closed)
> -------------------------------------------------------------------------------------------------
>
>                 Key: JENKINS-8592
>                 URL: http://issues.jenkins-ci.org/browse/JENKINS-8592
>             Project: Jenkins
>          Issue Type: Bug
>          Components: core
>    Affects Versions: current
>            Reporter: glundh
>            Assignee: nairb774
>            Priority: Critical
>
> If a stream is open remotely using FilePath.read() and the file is not read to the very end, the log will be spammed with exceptions like:
> {noformat}Jan 10, 2011 1:36:51 PM hudson.remoting.ProxyOutputStream$Chunk$1 run
>   WARNING: Failed to write to stream
>    java.io.IOException: Pipe is already closed
>    at hudson.remoting.FastPipedOutputStream.write(FastPipedOutputStream.java:147)
>    at hudson.remoting.FastPipedOutputStream.write(FastPipedOutputStream.java:131)
>    at hudson.remoting.ProxyOutputStream$Chunk$1.run(ProxyOutputStream.java:185)
> {noformat}
> ...and finally disconnect the slave. Several plug-ins are affected by this bug, for instance the Emma-plug-in. Marked as critical since it yet another remote issue and keeps us from upgrade. It is also easy to reproduce.
> To reproduce, just create a publisher plug-in with a perform() that looks like this:
> {noformat}  @Override
>   public boolean perform(AbstractBuild build, Launcher launcher, BuildListener listener) throws IOException {
>       InputStream in = build.getWorkspace().child("large_file_in_workspace").read();
>       // Just read one byte
>       System.out.println(in.read());
>       // Close it and watch the hudson log grow and slave (most often) disconnect.
>       in.close();
>       return true;
>   }
> {noformat}
> Test the plug-in with Hudson 1.390+. Make sure the new publisher plug-in is used in a project running on a slave (and also make sure that the "large_file_in_workspace"-file exists in the remote workspace).

--
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira