Uploaded image for project: 'TomEE'
  1. TomEE
  2. TOMEE-1778

XAPoolTest fails because lock on XA log file cannot be acquired

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 7.0.0-M3
    • 7.0.2
    • None
    • None
    • OSX Java 1.8.0_73

    Description

      When building the current master the XAPoolTest often fails for me because the lock on the XA log file cannot be acquired.
      I think this is due to the XAPoolTest executed directly after the XADataSourceTest using the same txMgr.logFileDir.

      -------------------------------------------------------------------------------
      Test set: org.apache.openejb.resource.jdbc.XAPoolTest
      -------------------------------------------------------------------------------
      Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.741 sec <<< FAILURE! - in org.apache.openejb.resource.jdbc.XAPoolTest
      check(org.apache.openejb.resource.jdbc.XAPoolTest)  Time elapsed: 0.585 sec  <<< ERROR!
      org.apache.xbean.recipe.ConstructionException: Error invoking factory method: public static org.apache.geronimo.transaction.manager.GeronimoTransactionManager org.apache.openejb.resource.GeronimoTransactionManagerFactory.create(java.lang.Integer,org.apache.openejb.util.Duration,boolean,byte[],java.lang.String,int,boolean,boolean,java.lang.Integer,org.apache.openejb.util.Duration,java.lang.String,java.lang.String,java.lang.String,int,int,int,int,int) throws java.lang.Exception
      	at org.apache.xbean.recipe.ReflectionUtil$StaticFactory.create(ReflectionUtil.java:1007)
      	at org.apache.xbean.recipe.ObjectRecipe.internalCreate(ObjectRecipe.java:276)
      	at org.apache.xbean.recipe.AbstractRecipe.create(AbstractRecipe.java:96)
      	at org.apache.xbean.recipe.AbstractRecipe.create(AbstractRecipe.java:61)
      	at org.apache.xbean.recipe.AbstractRecipe.create(AbstractRecipe.java:49)
      	at org.apache.openejb.assembler.classic.Assembler.createTransactionManager(Assembler.java:3291)
      	at org.apache.openejb.assembler.classic.Assembler.buildContainerSystem(Assembler.java:556)
      	at org.apache.openejb.testing.ApplicationComposers.startContainer(ApplicationComposers.java:1456)
      	at org.apache.openejb.testing.ApplicationComposers.before(ApplicationComposers.java:378)
      	at org.apache.openejb.testing.ApplicationComposers.evaluate(ApplicationComposers.java:1065)
      	at org.apache.openejb.junit.DeployApplication.evaluate(DeployApplication.java:40)
      	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
      	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
      	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
      	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
      	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
      	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
      	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
      	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
      	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
      	at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:264)
      	at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:153)
      	at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:124)
      	at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:200)
      	at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:153)
      	at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103)
      Caused by: org.objectweb.howl.log.LogConfigurationException: Unable to obtain lock on /Users/robertpanzer/tomitribe/tomee/container/openejb-core/target/test-classes/target/test/xa/howl/howl_1.log
      	at org.objectweb.howl.log.LogFile.open(LogFile.java:191)
      	at org.objectweb.howl.log.LogFileManager.open(LogFileManager.java:784)
      	at org.objectweb.howl.log.Logger.open(Logger.java:303)
      	at org.objectweb.howl.log.xa.XALogger.open(XALogger.java:893)
      	at org.apache.geronimo.transaction.log.HOWLLog.doStart(HOWLLog.java:258)
      	at org.apache.openejb.resource.GeronimoTransactionManagerFactory.create(GeronimoTransactionManagerFactory.java:108)
      	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:497)
      	at org.apache.xbean.recipe.ReflectionUtil$StaticFactory.create(ReflectionUtil.java:997)
      	at org.apache.xbean.recipe.ObjectRecipe.internalCreate(ObjectRecipe.java:276)
      	at org.apache.xbean.recipe.AbstractRecipe.create(AbstractRecipe.java:96)
      	at org.apache.xbean.recipe.AbstractRecipe.create(AbstractRecipe.java:61)
      	at org.apache.xbean.recipe.AbstractRecipe.create(AbstractRecipe.java:49)
      	at org.apache.openejb.assembler.classic.Assembler.createTransactionManager(Assembler.java:3291)
      	at org.apache.openejb.assembler.classic.Assembler.buildContainerSystem(Assembler.java:556)
      	at org.apache.openejb.testing.ApplicationComposers.startContainer(ApplicationComposers.java:1456)
      	at org.apache.openejb.testing.ApplicationComposers.before(ApplicationComposers.java:378)
      	at org.apache.openejb.testing.ApplicationComposers.evaluate(ApplicationComposers.java:1065)
      	at org.apache.openejb.junit.DeployApplication.evaluate(DeployApplication.java:40)
      	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
      	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
      	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
      	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
      	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
      	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
      	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
      	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
      	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
      	at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:264)
      	at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:153)
      	at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:124)
      	at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:200)
      	at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:153)
      	at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103)
      

      I can provide a patch that changes the log directory for this test and makes it pass for me.

      Attachments

        1. xapooltestpatch.diff
          0.8 kB
          Robert Panzer

        Activity

          People

            romain.manni-bucau Romain Manni-Bucau
            robertpanzer Robert Panzer
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: