Derby
  1. Derby
  2. DERBY-6114

OOME in XAMemTest.testDerby4137_TransactionTimeoutSpecifiedNotExceeded

    Details

    • Type: Bug Bug
    • Status: Resolved
    • Priority: Minor Minor
    • Resolution: Fixed
    • Affects Version/s: 10.9.2.2, 10.10.1.1
    • Fix Version/s: 10.9.2.2, 10.11.0.0, 10.10.2.0
    • Component/s: Services
    • Labels:
      None
    • Environment:
      Derby head of 10.10 branch. ubuntu3 slave on builds.apache.org. Java SE 7u4, 64-bit.
      java.vendor=Oracle Corporation
      java.runtime.version=1.7.0_04-b20
      os.name=Linux
      os.arch=amd64
      os.version=3.2.0-38-generic
    • Bug behavior facts:
      Regression Test Failure

      Description

      Seen twice in a row in https://builds.apache.org/job/Derby-10.10-suites.All/ :

      junit-lowmem:
      [junit] Running org.apache.derbyTesting.functionTests.tests.memory._Suite
      [junit] Exception in thread "DRDAConnThread_11" java.lang.OutOfMemoryError: GC overhead limit exceeded
      [junit] at java.util.Properties$LineReader.<init>(Properties.java:405)
      [junit] at java.util.Properties.load(Properties.java:341)
      [junit] at java.util.PropertyResourceBundle.<init>(PropertyResourceBundle.java:130)
      [junit] at java.util.ResourceBundle$Control.newBundle(ResourceBundle.java:2610)
      [junit] at java.util.ResourceBundle.loadBundle(ResourceBundle.java:1436)
      [junit] at java.util.ResourceBundle.findBundle(ResourceBundle.java:1400)
      [junit] at java.util.ResourceBundle.findBundle(ResourceBundle.java:1354)
      [junit] at java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1296)
      [junit] at java.util.ResourceBundle.getBundle(ResourceBundle.java:796)
      [junit] at org.apache.derby.iapi.services.i18n.MessageService.getBundleWithEnDefault(MessageService.java:318)
      [junit] at org.apache.derby.iapi.services.i18n.MessageService.getBundleForLocale(MessageService.java:53)
      [junit] at org.apache.derby.iapi.services.i18n.MessageService.getBundle(MessageService.java:302)
      [junit] at org.apache.derby.iapi.services.i18n.MessageService.getCompleteMessage(MessageService.java:97)
      [junit] at org.apache.derby.iapi.error.SQLWarningFactory.newSQLWarning(SQLWarningFactory.java:97)
      [junit] at org.apache.derby.iapi.error.SQLWarningFactory.newSQLWarning(SQLWarningFactory.java:50)
      [junit] at org.apache.derby.iapi.jdbc.BrokeredConnection.statementHoldabilityCheck(BrokeredConnection.java:736)
      [junit] at org.apache.derby.iapi.jdbc.BrokeredConnection.prepareStatement(BrokeredConnection.java:690)
      [junit] at org.apache.derby.impl.drda.DRDAStatement.prepare(DRDAStatement.java:669)
      [junit] at org.apache.derby.impl.drda.DRDAStatement.explicitPrepare(DRDAStatement.java:630)
      [junit] at org.apache.derby.impl.drda.DRDAConnThread.parsePRPSQLSTT(DRDAConnThread.java:3912)
      [junit] at org.apache.derby.impl.drda.DRDAConnThread.processCommands(DRDAConnThread.java:811)
      [junit] at org.apache.derby.impl.drda.DRDAConnThread.run(DRDAConnThread.java:295)
      [junit] Tests run: 67, Failures: 0, Errors: 1, Time elapsed: 1,571.059 sec
      [junit] Test org.apache.derbyTesting.functionTests.tests.memory._Suite FAILED

      1. backport-10.10.diff
        8 kB
        Knut Anders Hatlen
      2. derby.log
        311 kB
        Knut Anders Hatlen
      3. derby-6114-1a-purge.diff
        11 kB
        Knut Anders Hatlen
      4. derby-6114-2a-collapse-on-trunk.diff
        10 kB
        Knut Anders Hatlen
      5. error-stacktrace.out
        2 kB
        Knut Anders Hatlen

        Issue Links

          Activity

          Knut Anders Hatlen created issue -
          Knut Anders Hatlen made changes -
          Field Original Value New Value
          Description Seen twice in a row in https://builds.apache.org/view/A-F/view/Derby/job/Derby-10.10-suites.All:

          junit-lowmem:
              [junit] Running org.apache.derbyTesting.functionTests.tests.memory._Suite
              [junit] Exception in thread "DRDAConnThread_11" java.lang.OutOfMemoryError: GC overhead limit exceeded
              [junit] at java.util.Properties$LineReader.<init>(Properties.java:405)
              [junit] at java.util.Properties.load(Properties.java:341)
              [junit] at java.util.PropertyResourceBundle.<init>(PropertyResourceBundle.java:130)
              [junit] at java.util.ResourceBundle$Control.newBundle(ResourceBundle.java:2610)
              [junit] at java.util.ResourceBundle.loadBundle(ResourceBundle.java:1436)
              [junit] at java.util.ResourceBundle.findBundle(ResourceBundle.java:1400)
              [junit] at java.util.ResourceBundle.findBundle(ResourceBundle.java:1354)
              [junit] at java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1296)
              [junit] at java.util.ResourceBundle.getBundle(ResourceBundle.java:796)
              [junit] at org.apache.derby.iapi.services.i18n.MessageService.getBundleWithEnDefault(MessageService.java:318)
              [junit] at org.apache.derby.iapi.services.i18n.MessageService.getBundleForLocale(MessageService.java:53)
              [junit] at org.apache.derby.iapi.services.i18n.MessageService.getBundle(MessageService.java:302)
              [junit] at org.apache.derby.iapi.services.i18n.MessageService.getCompleteMessage(MessageService.java:97)
              [junit] at org.apache.derby.iapi.error.SQLWarningFactory.newSQLWarning(SQLWarningFactory.java:97)
              [junit] at org.apache.derby.iapi.error.SQLWarningFactory.newSQLWarning(SQLWarningFactory.java:50)
              [junit] at org.apache.derby.iapi.jdbc.BrokeredConnection.statementHoldabilityCheck(BrokeredConnection.java:736)
              [junit] at org.apache.derby.iapi.jdbc.BrokeredConnection.prepareStatement(BrokeredConnection.java:690)
              [junit] at org.apache.derby.impl.drda.DRDAStatement.prepare(DRDAStatement.java:669)
              [junit] at org.apache.derby.impl.drda.DRDAStatement.explicitPrepare(DRDAStatement.java:630)
              [junit] at org.apache.derby.impl.drda.DRDAConnThread.parsePRPSQLSTT(DRDAConnThread.java:3912)
              [junit] at org.apache.derby.impl.drda.DRDAConnThread.processCommands(DRDAConnThread.java:811)
              [junit] at org.apache.derby.impl.drda.DRDAConnThread.run(DRDAConnThread.java:295)
              [junit] Tests run: 67, Failures: 0, Errors: 1, Time elapsed: 1,571.059 sec
              [junit] Test org.apache.derbyTesting.functionTests.tests.memory._Suite FAILED
          Seen twice in a row in https://builds.apache.org/view/A-F/view/Derby/job/Derby-10.10-suites.All :

          junit-lowmem:
              [junit] Running org.apache.derbyTesting.functionTests.tests.memory._Suite
              [junit] Exception in thread "DRDAConnThread_11" java.lang.OutOfMemoryError: GC overhead limit exceeded
              [junit] at java.util.Properties$LineReader.<init>(Properties.java:405)
              [junit] at java.util.Properties.load(Properties.java:341)
              [junit] at java.util.PropertyResourceBundle.<init>(PropertyResourceBundle.java:130)
              [junit] at java.util.ResourceBundle$Control.newBundle(ResourceBundle.java:2610)
              [junit] at java.util.ResourceBundle.loadBundle(ResourceBundle.java:1436)
              [junit] at java.util.ResourceBundle.findBundle(ResourceBundle.java:1400)
              [junit] at java.util.ResourceBundle.findBundle(ResourceBundle.java:1354)
              [junit] at java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1296)
              [junit] at java.util.ResourceBundle.getBundle(ResourceBundle.java:796)
              [junit] at org.apache.derby.iapi.services.i18n.MessageService.getBundleWithEnDefault(MessageService.java:318)
              [junit] at org.apache.derby.iapi.services.i18n.MessageService.getBundleForLocale(MessageService.java:53)
              [junit] at org.apache.derby.iapi.services.i18n.MessageService.getBundle(MessageService.java:302)
              [junit] at org.apache.derby.iapi.services.i18n.MessageService.getCompleteMessage(MessageService.java:97)
              [junit] at org.apache.derby.iapi.error.SQLWarningFactory.newSQLWarning(SQLWarningFactory.java:97)
              [junit] at org.apache.derby.iapi.error.SQLWarningFactory.newSQLWarning(SQLWarningFactory.java:50)
              [junit] at org.apache.derby.iapi.jdbc.BrokeredConnection.statementHoldabilityCheck(BrokeredConnection.java:736)
              [junit] at org.apache.derby.iapi.jdbc.BrokeredConnection.prepareStatement(BrokeredConnection.java:690)
              [junit] at org.apache.derby.impl.drda.DRDAStatement.prepare(DRDAStatement.java:669)
              [junit] at org.apache.derby.impl.drda.DRDAStatement.explicitPrepare(DRDAStatement.java:630)
              [junit] at org.apache.derby.impl.drda.DRDAConnThread.parsePRPSQLSTT(DRDAConnThread.java:3912)
              [junit] at org.apache.derby.impl.drda.DRDAConnThread.processCommands(DRDAConnThread.java:811)
              [junit] at org.apache.derby.impl.drda.DRDAConnThread.run(DRDAConnThread.java:295)
              [junit] Tests run: 67, Failures: 0, Errors: 1, Time elapsed: 1,571.059 sec
              [junit] Test org.apache.derbyTesting.functionTests.tests.memory._Suite FAILED
          Hide
          Knut Anders Hatlen added a comment -

          Uploading derby.log and error-stacktrace.out from the latest failure.

          I have not been able to reproduce the OOME by running "ant junit-lowmem" in my environment so far.

          Show
          Knut Anders Hatlen added a comment - Uploading derby.log and error-stacktrace.out from the latest failure. I have not been able to reproduce the OOME by running "ant junit-lowmem" in my environment so far.
          Knut Anders Hatlen made changes -
          Attachment derby.log [ 12574512 ]
          Attachment error-stacktrace.out [ 12574513 ]
          Knut Anders Hatlen made changes -
          Bug behavior facts Regression Test Failure [ 10369 ]
          Hide
          Mike Matrigali added a comment -

          marking as regression as no previous report.

          Show
          Mike Matrigali added a comment - marking as regression as no previous report.
          Mike Matrigali made changes -
          Bug behavior facts Regression Test Failure [ 10369 ] Regression,Regression Test Failure [ 10420, 10369 ]
          Hide
          Knut Anders Hatlen added a comment -

          Also seen on the 10.9 branch (only once so far, revision 1462677).

          https://builds.apache.org/job/Derby-10.9-suites.All/69/

          Show
          Knut Anders Hatlen added a comment - Also seen on the 10.9 branch (only once so far, revision 1462677). https://builds.apache.org/job/Derby-10.9-suites.All/69/
          Knut Anders Hatlen made changes -
          Affects Version/s 10.9.2.2 [ 12324102 ]
          Hide
          Knut Anders Hatlen added a comment -

          (Updated broken URL in bug description.)

          Show
          Knut Anders Hatlen added a comment - (Updated broken URL in bug description.)
          Knut Anders Hatlen made changes -
          Description Seen twice in a row in https://builds.apache.org/view/A-F/view/Derby/job/Derby-10.10-suites.All :

          junit-lowmem:
              [junit] Running org.apache.derbyTesting.functionTests.tests.memory._Suite
              [junit] Exception in thread "DRDAConnThread_11" java.lang.OutOfMemoryError: GC overhead limit exceeded
              [junit] at java.util.Properties$LineReader.<init>(Properties.java:405)
              [junit] at java.util.Properties.load(Properties.java:341)
              [junit] at java.util.PropertyResourceBundle.<init>(PropertyResourceBundle.java:130)
              [junit] at java.util.ResourceBundle$Control.newBundle(ResourceBundle.java:2610)
              [junit] at java.util.ResourceBundle.loadBundle(ResourceBundle.java:1436)
              [junit] at java.util.ResourceBundle.findBundle(ResourceBundle.java:1400)
              [junit] at java.util.ResourceBundle.findBundle(ResourceBundle.java:1354)
              [junit] at java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1296)
              [junit] at java.util.ResourceBundle.getBundle(ResourceBundle.java:796)
              [junit] at org.apache.derby.iapi.services.i18n.MessageService.getBundleWithEnDefault(MessageService.java:318)
              [junit] at org.apache.derby.iapi.services.i18n.MessageService.getBundleForLocale(MessageService.java:53)
              [junit] at org.apache.derby.iapi.services.i18n.MessageService.getBundle(MessageService.java:302)
              [junit] at org.apache.derby.iapi.services.i18n.MessageService.getCompleteMessage(MessageService.java:97)
              [junit] at org.apache.derby.iapi.error.SQLWarningFactory.newSQLWarning(SQLWarningFactory.java:97)
              [junit] at org.apache.derby.iapi.error.SQLWarningFactory.newSQLWarning(SQLWarningFactory.java:50)
              [junit] at org.apache.derby.iapi.jdbc.BrokeredConnection.statementHoldabilityCheck(BrokeredConnection.java:736)
              [junit] at org.apache.derby.iapi.jdbc.BrokeredConnection.prepareStatement(BrokeredConnection.java:690)
              [junit] at org.apache.derby.impl.drda.DRDAStatement.prepare(DRDAStatement.java:669)
              [junit] at org.apache.derby.impl.drda.DRDAStatement.explicitPrepare(DRDAStatement.java:630)
              [junit] at org.apache.derby.impl.drda.DRDAConnThread.parsePRPSQLSTT(DRDAConnThread.java:3912)
              [junit] at org.apache.derby.impl.drda.DRDAConnThread.processCommands(DRDAConnThread.java:811)
              [junit] at org.apache.derby.impl.drda.DRDAConnThread.run(DRDAConnThread.java:295)
              [junit] Tests run: 67, Failures: 0, Errors: 1, Time elapsed: 1,571.059 sec
              [junit] Test org.apache.derbyTesting.functionTests.tests.memory._Suite FAILED
          Seen twice in a row in https://builds.apache.org/job/Derby-10.10-suites.All/ :

          junit-lowmem:
              [junit] Running org.apache.derbyTesting.functionTests.tests.memory._Suite
              [junit] Exception in thread "DRDAConnThread_11" java.lang.OutOfMemoryError: GC overhead limit exceeded
              [junit] at java.util.Properties$LineReader.<init>(Properties.java:405)
              [junit] at java.util.Properties.load(Properties.java:341)
              [junit] at java.util.PropertyResourceBundle.<init>(PropertyResourceBundle.java:130)
              [junit] at java.util.ResourceBundle$Control.newBundle(ResourceBundle.java:2610)
              [junit] at java.util.ResourceBundle.loadBundle(ResourceBundle.java:1436)
              [junit] at java.util.ResourceBundle.findBundle(ResourceBundle.java:1400)
              [junit] at java.util.ResourceBundle.findBundle(ResourceBundle.java:1354)
              [junit] at java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1296)
              [junit] at java.util.ResourceBundle.getBundle(ResourceBundle.java:796)
              [junit] at org.apache.derby.iapi.services.i18n.MessageService.getBundleWithEnDefault(MessageService.java:318)
              [junit] at org.apache.derby.iapi.services.i18n.MessageService.getBundleForLocale(MessageService.java:53)
              [junit] at org.apache.derby.iapi.services.i18n.MessageService.getBundle(MessageService.java:302)
              [junit] at org.apache.derby.iapi.services.i18n.MessageService.getCompleteMessage(MessageService.java:97)
              [junit] at org.apache.derby.iapi.error.SQLWarningFactory.newSQLWarning(SQLWarningFactory.java:97)
              [junit] at org.apache.derby.iapi.error.SQLWarningFactory.newSQLWarning(SQLWarningFactory.java:50)
              [junit] at org.apache.derby.iapi.jdbc.BrokeredConnection.statementHoldabilityCheck(BrokeredConnection.java:736)
              [junit] at org.apache.derby.iapi.jdbc.BrokeredConnection.prepareStatement(BrokeredConnection.java:690)
              [junit] at org.apache.derby.impl.drda.DRDAStatement.prepare(DRDAStatement.java:669)
              [junit] at org.apache.derby.impl.drda.DRDAStatement.explicitPrepare(DRDAStatement.java:630)
              [junit] at org.apache.derby.impl.drda.DRDAConnThread.parsePRPSQLSTT(DRDAConnThread.java:3912)
              [junit] at org.apache.derby.impl.drda.DRDAConnThread.processCommands(DRDAConnThread.java:811)
              [junit] at org.apache.derby.impl.drda.DRDAConnThread.run(DRDAConnThread.java:295)
              [junit] Tests run: 67, Failures: 0, Errors: 1, Time elapsed: 1,571.059 sec
              [junit] Test org.apache.derbyTesting.functionTests.tests.memory._Suite FAILED
          Rick Hillegas made changes -
          Affects Version/s 10.9.1.1 [ 12323562 ]
          Affects Version/s 10.9.2.2 [ 12324102 ]
          Knut Anders Hatlen made changes -
          Link This issue relates to DERBY-5394 [ DERBY-5394 ]
          Knut Anders Hatlen made changes -
          Link This issue relates to DERBY-4137 [ DERBY-4137 ]
          Knut Anders Hatlen made changes -
          Assignee Knut Anders Hatlen [ knutanders ]
          Hide
          Knut Anders Hatlen added a comment -

          I think this has only been seen in the Jenkins jobs on builds.apache.org, so it's more likely that there is something special about that environment than an actual regression. I see that the test takes very long in my environment when running it standalone with -Xmx16M (same setting as the junit-lowmem Ant target), doing lots of GC, and there may be some property of the test server that makes the JVM give up with "GC overhead limit exceeded" earlier on that machine.

          I monitored the heap usage while running the test, and it is the queue of the cancellation timer that grows very big during this test. It ends up with 120000 entries, all entries representing canceled tasks. The fix for DERBY-4137 reduced the size of the entries after they have been canceled, but it didn't remove them from the queue. They canceled tasks stay in the queue until the time they're scheduled to run, but they've been made no-ops.

          There was some discussion in DERBY-4137 about using the Java 5 method TimerTask.purge() to remove canceled tasks from the queue. That was not implemented because reducing the size of the canceled tasks in the queue appeared to be sufficient to solve the problem at hand. I think we should reconsider it, given that we have seen problems with resources not being freed in time because of it both in this issue and in DERBY-5394.

          On trunk I think it would make sense at some point in time to move from java.util.Timer to java.util.concurrent.ScheduledThreadPoolExecutor, as the latter better supports fast (and from Java 7 even automatic) removal of canceled tasks. However, since such a solution would depend on Java 5, it could not be easily back-ported to the branches on which we see the test failures. (Side note: We've only seen it on 10.9 and 10.10. Not yet on trunk, but that's most likely just because we don't run JUnit tests against trunk on builds.apache.org.)

          I therefore plan to create a fix that uses the purge() method and that can be back-ported, and leave it as a possible improvement on trunk to replace java.util.Timer with java.util.concurrent.ScheduledThreadPoolExecutor.

          Show
          Knut Anders Hatlen added a comment - I think this has only been seen in the Jenkins jobs on builds.apache.org, so it's more likely that there is something special about that environment than an actual regression. I see that the test takes very long in my environment when running it standalone with -Xmx16M (same setting as the junit-lowmem Ant target), doing lots of GC, and there may be some property of the test server that makes the JVM give up with "GC overhead limit exceeded" earlier on that machine. I monitored the heap usage while running the test, and it is the queue of the cancellation timer that grows very big during this test. It ends up with 120000 entries, all entries representing canceled tasks. The fix for DERBY-4137 reduced the size of the entries after they have been canceled, but it didn't remove them from the queue. They canceled tasks stay in the queue until the time they're scheduled to run, but they've been made no-ops. There was some discussion in DERBY-4137 about using the Java 5 method TimerTask.purge() to remove canceled tasks from the queue. That was not implemented because reducing the size of the canceled tasks in the queue appeared to be sufficient to solve the problem at hand. I think we should reconsider it, given that we have seen problems with resources not being freed in time because of it both in this issue and in DERBY-5394 . On trunk I think it would make sense at some point in time to move from java.util.Timer to java.util.concurrent.ScheduledThreadPoolExecutor, as the latter better supports fast (and from Java 7 even automatic) removal of canceled tasks. However, since such a solution would depend on Java 5, it could not be easily back-ported to the branches on which we see the test failures. (Side note: We've only seen it on 10.9 and 10.10. Not yet on trunk, but that's most likely just because we don't run JUnit tests against trunk on builds.apache.org.) I therefore plan to create a fix that uses the purge() method and that can be back-ported, and leave it as a possible improvement on trunk to replace java.util.Timer with java.util.concurrent.ScheduledThreadPoolExecutor.
          Hide
          Knut Anders Hatlen added a comment -

          I'm currently running tests on the attached derby-6114-1a-purge.diff patch.

          This patch makes the timer factory invoke purge() on the timer on every 1000th cancellation. The number 1000 was picked arbitrarily. It didn't feel right to do it every time a task was cancelled (as that's the path taken on normal execution when a transaction timeout is in effect). 1000 sounded like a reasonable trade-off. 1000 cancelled tasks won't take up very much memory, and traversing the timer's queue once per 1000 successful transaction doesn't sound like a very high cost.

          A new implementation of TimerFactory is added, Java5SingletonTimerFactory, which extends the existing SingletonTimerFactory. A new factory is not necessary on trunk, since Java 6 is the base level, but it eases back-porting to older branches where the purge() method is not available on the base level.

          I plan to collapse Java5SingletonTimerFactory and SingletonTimerFactory on trunk once the fix has been back-ported.

          I do not plan to implement a specific fix for Java 1.4 and/or CDC on older branches. They will still have the old behaviour. Note that "ant junit-lowmem" only runs if the JVM is at least at level 1.5, so the test problems don't affect the old platforms.

          The patch changes the TimerFactory interface so that it doesn't return a reference to the actual java.util.Timer instance. This makes it easier to hide the logic inside the factory, rather than duplicating logic for purging tasks at the callers.

          The patch removes the comment in memory._Suite that says the test has to run as the last test (DERBY-5394), as it is no longer the case that the test holds on to a lot of garbage when it's done.

          I ran XAMemTest with 12MB heap with and without the patch. The patch reduced the time to complete the test from 15 minutes to 1 minute due to earlier release of the task instances and lower GC overhead.

          Show
          Knut Anders Hatlen added a comment - I'm currently running tests on the attached derby-6114-1a-purge.diff patch. This patch makes the timer factory invoke purge() on the timer on every 1000th cancellation. The number 1000 was picked arbitrarily. It didn't feel right to do it every time a task was cancelled (as that's the path taken on normal execution when a transaction timeout is in effect). 1000 sounded like a reasonable trade-off. 1000 cancelled tasks won't take up very much memory, and traversing the timer's queue once per 1000 successful transaction doesn't sound like a very high cost. A new implementation of TimerFactory is added, Java5SingletonTimerFactory, which extends the existing SingletonTimerFactory. A new factory is not necessary on trunk, since Java 6 is the base level, but it eases back-porting to older branches where the purge() method is not available on the base level. I plan to collapse Java5SingletonTimerFactory and SingletonTimerFactory on trunk once the fix has been back-ported. I do not plan to implement a specific fix for Java 1.4 and/or CDC on older branches. They will still have the old behaviour. Note that "ant junit-lowmem" only runs if the JVM is at least at level 1.5, so the test problems don't affect the old platforms. The patch changes the TimerFactory interface so that it doesn't return a reference to the actual java.util.Timer instance. This makes it easier to hide the logic inside the factory, rather than duplicating logic for purging tasks at the callers. The patch removes the comment in memory._Suite that says the test has to run as the last test ( DERBY-5394 ), as it is no longer the case that the test holds on to a lot of garbage when it's done. I ran XAMemTest with 12MB heap with and without the patch. The patch reduced the time to complete the test from 15 minutes to 1 minute due to earlier release of the task instances and lower GC overhead.
          Knut Anders Hatlen made changes -
          Attachment derby-6114-1a-purge.diff [ 12586472 ]
          Knut Anders Hatlen made changes -
          Status Open [ 1 ] In Progress [ 3 ]
          Hide
          Knut Anders Hatlen added a comment -

          All regression tests passed with the patch.

          Show
          Knut Anders Hatlen added a comment - All regression tests passed with the patch.
          Knut Anders Hatlen made changes -
          Issue & fix info Patch Available [ 10102 ]
          Hide
          ASF subversion and git services added a comment -

          Commit 1492094 from Knut Anders Hatlen
          [ https://svn.apache.org/r1492094 ]

          DERBY-6114: OOME in XAMemTest.testDerby4137_TransactionTimeoutSpecifiedNotExceeded

          Periodically run purge() on the cancellation timer to reclaim the
          space occupied by cancelled tasks.

          Show
          ASF subversion and git services added a comment - Commit 1492094 from Knut Anders Hatlen [ https://svn.apache.org/r1492094 ] DERBY-6114 : OOME in XAMemTest.testDerby4137_TransactionTimeoutSpecifiedNotExceeded Periodically run purge() on the cancellation timer to reclaim the space occupied by cancelled tasks.
          Hide
          Knut Anders Hatlen added a comment -

          Attaching a patch that ports the fix to 10.10. It's essentially the same as the original fix on trunk. The differences are: 1) A merge conflict in modules.properties was resolved. 2) The build script had to be told to compile Java5SingletonTimesFactory with Java 5, since the base level is still Foundation Profile 1.1 on the 10.10 branch.

          All tests passed with the patch.

          Show
          Knut Anders Hatlen added a comment - Attaching a patch that ports the fix to 10.10. It's essentially the same as the original fix on trunk. The differences are: 1) A merge conflict in modules.properties was resolved. 2) The build script had to be told to compile Java5SingletonTimesFactory with Java 5, since the base level is still Foundation Profile 1.1 on the 10.10 branch. All tests passed with the patch.
          Knut Anders Hatlen made changes -
          Attachment backport-10.10.diff [ 12587400 ]
          Hide
          ASF subversion and git services added a comment -

          Commit 1492127 from Knut Anders Hatlen
          [ https://svn.apache.org/r1492127 ]

          DERBY-6114: OOME in XAMemTest.testDerby4137_TransactionTimeoutSpecifiedNotExceeded

          Merged revision 1492094 from trunk and manually resolved conflicts.

          Show
          ASF subversion and git services added a comment - Commit 1492127 from Knut Anders Hatlen [ https://svn.apache.org/r1492127 ] DERBY-6114 : OOME in XAMemTest.testDerby4137_TransactionTimeoutSpecifiedNotExceeded Merged revision 1492094 from trunk and manually resolved conflicts.
          Hide
          ASF subversion and git services added a comment -

          Commit 1496859 from Knut Anders Hatlen
          [ https://svn.apache.org/r1496859 ]

          DERBY-6114: OOME in XAMemTest.testDerby4137_TransactionTimeoutSpecifiedNotExceeded

          Merged revision 1492127 from 10.10.

          Show
          ASF subversion and git services added a comment - Commit 1496859 from Knut Anders Hatlen [ https://svn.apache.org/r1496859 ] DERBY-6114 : OOME in XAMemTest.testDerby4137_TransactionTimeoutSpecifiedNotExceeded Merged revision 1492127 from 10.10.
          Knut Anders Hatlen made changes -
          Fix Version/s 10.9.2.2 [ 12323562 ]
          Fix Version/s 10.10.1.3 [ 12324247 ]
          Fix Version/s 10.11.0.0 [ 12324243 ]
          Issue & fix info Patch Available [ 10102 ]
          Hide
          Knut Anders Hatlen added a comment -

          Attaching derby-6114-2a-collapse-on-trunk.diff which folds the functionality of Java5SingletonTimerFactory into SingletonTimerFactory on trunk. Two different implementations are not needed on trunk since all JVMs supported on trunk have the functionality needed by Java5SingletonTimerFactory.

          All the regression tests ran cleanly with the patch.

          Show
          Knut Anders Hatlen added a comment - Attaching derby-6114-2a-collapse-on-trunk.diff which folds the functionality of Java5SingletonTimerFactory into SingletonTimerFactory on trunk. Two different implementations are not needed on trunk since all JVMs supported on trunk have the functionality needed by Java5SingletonTimerFactory. All the regression tests ran cleanly with the patch.
          Knut Anders Hatlen made changes -
          Attachment derby-6114-2a-collapse-on-trunk.diff [ 12590233 ]
          Knut Anders Hatlen made changes -
          Issue & fix info Patch Available [ 10102 ]
          Hide
          ASF subversion and git services added a comment -

          Commit 1499256 from Knut Anders Hatlen
          [ https://svn.apache.org/r1499256 ]

          DERBY-6114: Fold Java5SingletonTimerFactory into SingletonTimerFactory

          Show
          ASF subversion and git services added a comment - Commit 1499256 from Knut Anders Hatlen [ https://svn.apache.org/r1499256 ] DERBY-6114 : Fold Java5SingletonTimerFactory into SingletonTimerFactory
          Knut Anders Hatlen made changes -
          Status In Progress [ 3 ] Resolved [ 5 ]
          Issue & fix info Patch Available [ 10102 ]
          Bug behavior facts Regression,Regression Test Failure [ 10420, 10369 ] Regression Test Failure [ 10369 ]
          Resolution Fixed [ 1 ]
          Gavin made changes -
          Workflow jira [ 12772337 ] Default workflow, editable Closed status [ 12802556 ]
          Knut Anders Hatlen made changes -
          Link This issue is related to DERBY-697 [ DERBY-697 ]
          Myrna van Lunteren made changes -
          Component/s Services [ 11415 ]
          Component/s Test [ 11413 ]
          Myrna van Lunteren made changes -
          Fix Version/s 10.10.2.0 [ 12326659 ]
          Fix Version/s 10.10.1.4 [ 12324247 ]

            People

            • Assignee:
              Knut Anders Hatlen
              Reporter:
              Knut Anders Hatlen
            • Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development