I ran another clean build but this time with the MAVEN_OPTS settings John mentioned below. I'm not sure yet if it's indicative of a general solution (since it didn't always fail) but it didn't fail with the out of memory error this time.

However, this time it did fail with the fileIO exception (actually, it's a java.io.FileNotFoundException).

assemble:package-assembly:
    [echo] Preparing CRLF line endings in text based files for zip
            distribution
[zip] Building zip: C:\geronimo\assemblies\j2ee-tomcat-server\target\geronimo-tomcat-j2ee-1.2-SNAPSHOT.zip [echo] Preparing LF line endings in text based files for tar.gz distribution

BUILD FAILED
File...... C:\geronimo\maven.xml
Element... maven:reactor
Line...... 227
Column.... -1
Unable to obtain goal [multiproject:install-callback] -- C:\Documents and Settings\Administrator\.maven\cache\geronimo-assembly-plugin-1.2.0-8\plugin.jelly:352: -1: <ant:fixcrlf> java.io.FileNotFoundException: C:\geronimo\assemblies\j2ee-tomcat-server\target\geronimo-1.2-SNAPSHOT\config-store\30\geronimo-console-standar d-1.2-SNAPSHOT.war\WEB-INF\work\org\apache\jsp\WEB_002dINF\view\certmanager\generateCSRNormal_jsp.java (Access is denied)
Total time   : 36 minutes 34 seconds
15:58:36,934 INFO  [App] Total time   : 36 minutes 34 seconds

The referenced file (generateCSRNormal_jsp.java) does not exist in this work location (just as the exception indicated). It's the only jsp that doesn't have both the java and class files in that work location. However, it makes me wonder if we need to be processing these work files anyway in the plugin. Do we really need to touch the line endings on these files (if in fact that is what we're doing at this point in time)?


As a side note: After the build %temp% included about the same number of test* files as my earlier post (47), only 9 geronimo-deploymentUtil* files and 11 package*.tmpdir directories.



John Sisson wrote:
Joe Bohn wrote:


I've been encountering a number of problems building on Windows which seem to be steadily getting worse and I was wondering if anybody else is experiencing this (and hopefully has some work-arounds).

- Out of Memory Errors. These seem to be related to two different things: 1) Long file names. If I remember correctly Windows has issues if the file names exceed 256 bytes. I've been working with multiple levels of geronimo concurrently and so have had to name the root something other than simply geronimo. It seems like if I start to get longer than 12 characters or so I begin to hit these problems. I think we may be getting into trouble here with the depth of our packages and embedded classes.

Yes, it is concerning.. http://mail-archives.apache.org/mod_mbox/geronimo-dev/200601.mbox/[EMAIL PROTECTED] I also have had to shorten my directory path I am building in. The long file name issue should go way when we move to JDK 1.5_06 but a number of other programs on Windows that deal with files also have the issue (e.g. Windows File Explorer, WinZip, Visual SourceSafe) so this issue could bite us with users complaining that other tools they are using can't work with Geronimo's long directory paths.
Do we have a JIRA for this issue?

2) Extra garbage hanging around in %temp% from previous builds. The geronimo build leaves a lot of trash in %temp% and when that seems to cause problems with out of memory errors and subsequent builds.

See http://issues.apache.org/jira/browse/GERONIMO-777

Are you seeing these problems on trunk, 1.0 or 1.1 branches or all? What JDK are you using?

For a long time I have been using the following (from memory I think there was something in maven or one of the libraries it uses that had a leak - not sure if this still exists)

SET MAVEN_OPTS=-Xmx512m -XX:MaxPermSize=128m

What command are you using to build? (this could possibly affect what code gets invoked and how much memory is used). Do you have MAVEN_OPTS environment variables set?

I will try to reproduce with the same JDK level and commands once you provide the info.

- File IO errors when running the CRLF plugin. These may be related to the %temp% storage but I seem to get them at times even when I've just cleaned out my %temp%. Running back to back I get different results.

One thing to try is disabling XP's file indexing (which I have done). It looks like this has caused problems for Java elsewhere (see the workaround in this bug).. http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5006328

I also found that http://www.sysinternals.com/Utilities/ProcessExplorer.html utility is good for tracking down processes that have file handles open. Use the Find-->Find Handle menu option and specify the file name. I had some similar problems for a while and ended up tracking it down my incorrectly configured Diskeeper disk defragmenter that had paused defragmentation and held file handles open. Have you tried with real-time virus checking disabled to check it isn't a virus checker causing issues? What files are you getting the IO errors on? Can you include the error output?

It makes me wonder if we need to have some kind of retry logic for file operations if we are possibly competing with file indexers etc so we can run on a Windows box without problems. I noticed some of the Ant tasks have retry logic for some file operations:

http://svn.apache.org/viewcvs.cgi/ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/Mkdir.java?view=markup http://svn.apache.org/viewcvs.cgi/ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/Delete.java?view=markup

Regards,

John


Thanks for the help,
Joe




--
Joe Bohn
joe.bohn at earthlink.net

"He is no fool who gives what he cannot keep, to gain what he cannot lose." -- Jim Elliot

Reply via email to