ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From bugzi...@apache.org
Subject DO NOT REPLY [Bug 13546] New: - cab (listcab) hangs with large filesets
Date Fri, 11 Oct 2002 19:17:55 GMT
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=13546>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=13546

cab (listcab) hangs with large filesets

           Summary: cab (listcab) hangs with large filesets
           Product: Ant
           Version: 1.5.1
          Platform: Other
        OS/Version: Other
            Status: NEW
          Severity: Normal
          Priority: Other
         Component: Optional Tasks
        AssignedTo: ant-dev@jakarta.apache.org
        ReportedBy: newsham@hotu.com


Creating a cab in non-Windows environment uses an external tool called listcab.
 Listcab requires the list of files to be archived to be passed through stdin,
and not on the command line.  In cases where this list is very large, the Cab
task just hangs.

I have looked at the 1.5.1 source for Cab, and the problem appears to be that
the entire list of files is written to the exec'ed listcab process before any
output is read.

This is what I believe happens.  Listcab prints some output for every file in
the list, and with nothing reading this output, the stdout buffer soon becomes
full, and listcab blocks on write.  Then, with listcab no longer reading stdin,
the stdin buffer becomes full and the Cab task blocks on write.

The fix which works for me, is to start the process' stdin/stderr reader threads
before writing the filelist to the process.

--
To unsubscribe, e-mail:   <mailto:ant-dev-unsubscribe@jakarta.apache.org>
For additional commands, e-mail: <mailto:ant-dev-help@jakarta.apache.org>


Mime
View raw message