Unable to get lock on cobertura.ser.lock when build is running from a NFS mount
-------------------------------------------------------------------------------

                 Key: MCOBERTURA-128
                 URL: http://jira.codehaus.org/browse/MCOBERTURA-128
             Project: Maven 2.x Cobertura Plugin
          Issue Type: Bug
    Affects Versions: 2.4, 2.2
         Environment: RHEL5 2.6.18-164.11.1.el5
NFS Mounted NetApp
Hudson 1.372
Maven 2
            Reporter: Ryan Shelley


When running a Maven build where the source files exist on an NFS mounted 
NetApp, Cobertura reports the following message (abridged path to lock file):

---------------------------------------
Unable to get lock on .../cobertura.ser.lock: null
This is known to happen on Linux kernel 2.6.20.
Make sure cobertura.jar is in the root classpath of the jvm 
process running the instrumented code.  If the instrumented code 
is running in a web server, this means cobertura.jar should be in 
the web server's lib directory.
Don't put multiple copies of cobertura.jar in different WEB-INF/lib directories.
Only one classloader should load cobertura.  It should be the root classloader.
---------------------------------------

After researching, I found a case where Cobertura is attempting to create a 
lock via NIO and failing due to the NFS mount.  The work around is to apply the 
system property "cobertura.use.java.nio" and set it to "false".  I attempted to 
set this property through the Cobertura Maven Plugin with:

      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>cobertura-maven-plugin</artifactId>
        <version>2.4</version>
        <configuration>
          <systemProperties>
            <property>
              <name>cobertura.use.java.nio</name>
              <value>false</value>
            </property>
          </systemProperties>
        </configuration>
      </plugin>

however the property did not get passed on to Cobetura.  Instead, I added it to 
Surefire and it was passed in properly.  This seems like something that I 
should be able to pass into the Cobertura Maven Plugin, however, and not 
through Surefire:

      <plugin>
        <artifactId>maven-surefire-plugin</artifactId>
        <configuration>
          <systemProperties>
            <property>
              <name>cobertura.use.java.nio</name>
              <value>false</value>
            </property>
          </systemProperties>
        </configuration>
      </plugin>

The thread that I came across that helped identify this was:
http://www.mail-archive.com/u...@mojo.codehaus.org/msg01649.html

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email


Reply via email to