Derby
  1. Derby
  2. DERBY-4290

suites.All hangs on phoneME/cvm - caused by cvm/phoneME error

    Details

    • Type: Improvement Improvement
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 10.5.3.1, 10.6.1.0
    • Fix Version/s: 10.6.1.0
    • Component/s: Test
    • Labels:
      None
    • Environment:

      Description

      Since 783408 2009-06-10 18:02:38 MEST suites.All hangs on phoneME/cvm.

      The problem appears to be a hardcoded limitation in phoneME/cvm: 'java.lang.InternalError: Number of class names exceeds vm limit.'
      In addition the cvm vm just hangs instead of aborting, causing the test to hang.

      Until this may be fixed in phoneME/cvm I suggest to create and run independent subsuites of suites.AllPackages when testing on phoneME/cvm.

      1. DERBY-4290_diff.txt
        0.8 kB
        Ole Solberg
      2. DERBY-4290_stat.txt
        0.1 kB
        Ole Solberg
      3. DERBY-4290b_diff.txt
        0.9 kB
        Ole Solberg
      4. DERBY-4290b_stat.txt
        0.1 kB
        Ole Solberg

        Activity

        Hide
        Ole Solberg added a comment -

        790489 backported to 10.5 with revision 832349.

        Show
        Ole Solberg added a comment - 790489 backported to 10.5 with revision 832349.
        Hide
        Ole Solberg added a comment -

        DERBY-4290b was committed to trunk with revision 790489.

        Show
        Ole Solberg added a comment - DERBY-4290 b was committed to trunk with revision 790489.
        Hide
        Ole Solberg added a comment -

        Added ref to this JIRA in the comment.

        Show
        Ole Solberg added a comment - Added ref to this JIRA in the comment.
        Hide
        Knut Anders Hatlen added a comment -

        The patch looks fine to me. Could you also add a reference to this JIRA issue in the comment so that it's easier for others to find out why it was disabled?

        Show
        Knut Anders Hatlen added a comment - The patch looks fine to me. Could you also add a reference to this JIRA issue in the comment so that it's easier for others to find out why it was disabled?
        Hide
        Ole Solberg added a comment -

        suites.All ran with the known failures(Tests run: 4209, Failures: 1, Errors: 20) on phoneME/CVM (where OrderByAndSortAvoidance now is bypassed)
        and
        without failures on Sun Java VM (where OrderByAndSortAvoidance is run).

        I intend to commit the patch later today/tomorrow.

        Show
        Ole Solberg added a comment - suites.All ran with the known failures(Tests run: 4209, Failures: 1, Errors: 20) on phoneME/CVM (where OrderByAndSortAvoidance now is bypassed) and without failures on Sun Java VM (where OrderByAndSortAvoidance is run). I intend to commit the patch later today/tomorrow.
        Hide
        Ole Solberg added a comment - - edited

        DERBY-4290_diff.txt - Patch to bypass org.apache.derbyTesting.functionTests.tests.lang.OrderByAndSortAvoidance on phoneME/cvm.

        There is a fix for PhoneME/cvm which should be available soon.

        Even though there is a fix for phoneME coming, we should probably also investigate whether this is triggered by Derby not releasing classes soon enough.

        Show
        Ole Solberg added a comment - - edited DERBY-4290 _diff.txt - Patch to bypass org.apache.derbyTesting.functionTests.tests.lang.OrderByAndSortAvoidance on phoneME/cvm. There is a fix for PhoneME/cvm which should be available soon. Even though there is a fix for phoneME coming, we should probably also investigate whether this is triggered by Derby not releasing classes soon enough.
        Hide
        Ole Solberg added a comment -

        It turns out I get the same problem even when running the testsuite that triggers this failure on its own!
        The testsuite is org.apache.derbyTesting.functionTests.tests.lang.OrderByAndSortAvoidance.

        So instead of splitting up suites.AllPackages when testing on phoneME/cvm, we should temporarily disable this test on phoneME/cvm.
        From logs at http://people.apache.org/~myrnavl/derby_test_results/main/windows/index.html I see that the testsuite is ok on weme6.1.

        /usr/local/java/cvm/bin/cvm -Xgc:youngGen=5M -Xmn256M -XunlimitedGCRoots -DderbyTesting.oldReleasePath=/usr/local/share/java/derby/lib -Dderby.tests.trace=true -cp ..... junit.textui.TestRunner org.apache.derbyTesting.functionTests.tests.lang.OrderByAndSortAvoidance
        .
        testForcedIndexUseForWrongOrder used 48822 ms .
        testWithNoOptimizerOverrides used 50300 ms .
        testForceSortWithOptimizerOverrides used 53377 ms .
        testAdditionalOrderByCases used 57617 ms .
        testDerby4240OrderByCase used 34930 ms EEE
        Time: 247.998
        There were 3 errors:
        1) testDerby4240OrderByCase(org.apache.derbyTesting.functionTests.tests.lang.OrderByAndSortAvoidance)java.lang.InternalError: Number of class names exceeds vm limit.
        at java.lang.ClassLoader.findLoadedClass0(Native Method)
        at java.lang.ClassLoader.findLoadedClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at java.util.ResourceBundle.loadBundle(Unknown Source)
        at java.util.ResourceBundle.findBundle(Unknown Source)
        at java.util.ResourceBundle.getBundleImpl(Unknown Source)
        at java.util.ResourceBundle.getBundle(Unknown Source)
        at org.apache.derby.iapi.services.i18n.MessageService.getBundleWithEnDefault(Unknown Source)
        at org.apache.derby.iapi.services.i18n.MessageService.getBundleForLocale(Unknown Source)
        at org.apache.derby.impl.services.monitor.BaseMonitor.getBundle(Unknown Source)
        at org.apache.derby.iapi.services.i18n.MessageService.getBundle(Unknown Source)
        at org.apache.derby.iapi.services.i18n.MessageService.getCompleteMessage(Unknown Source)
        at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Unknown Source)
        at org.apache.derby.impl.jdbc.Util.javaException(Unknown Source)
        at org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(Unknown Source)
        at org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(Unknown Source)
        at org.apache.derby.impl.jdbc.EmbedConnection.handleException(Unknown Source)
        at org.apache.derby.impl.jdbc.ConnectionChild.handleException(Unknown Source)
        at org.apache.derby.impl.jdbc.EmbedStatement.execute(Unknown Source)
        at org.apache.derby.impl.jdbc.EmbedStatement.executeUpdate(Unknown Source)
        at org.apache.derbyTesting.functionTests.tests.lang.OrderByAndSortAvoidance.setUp(Unknown Source)
        at org.apache.derbyTesting.junit.BaseTestCase.runBare(Unknown Source)
        at junit.extensions.TestDecorator.basicRun(Unknown Source)
        at junit.extensions.TestSetup$1.protect(Unknown Source)
        at junit.extensions.TestSetup.run(Unknown Source)
        at org.apache.derbyTesting.junit.BaseTestSetup.run(Unknown Source)
        at sun.misc.CVM.runMain(Unknown Source)

        Show
        Ole Solberg added a comment - It turns out I get the same problem even when running the testsuite that triggers this failure on its own! The testsuite is org.apache.derbyTesting.functionTests.tests.lang.OrderByAndSortAvoidance. So instead of splitting up suites.AllPackages when testing on phoneME/cvm, we should temporarily disable this test on phoneME/cvm. From logs at http://people.apache.org/~myrnavl/derby_test_results/main/windows/index.html I see that the testsuite is ok on weme6.1. /usr/local/java/cvm/bin/cvm -Xgc:youngGen=5M -Xmn256M -XunlimitedGCRoots -DderbyTesting.oldReleasePath=/usr/local/share/java/derby/lib -Dderby.tests.trace=true -cp ..... junit.textui.TestRunner org.apache.derbyTesting.functionTests.tests.lang.OrderByAndSortAvoidance . testForcedIndexUseForWrongOrder used 48822 ms . testWithNoOptimizerOverrides used 50300 ms . testForceSortWithOptimizerOverrides used 53377 ms . testAdditionalOrderByCases used 57617 ms . testDerby4240OrderByCase used 34930 ms EEE Time: 247.998 There were 3 errors: 1) testDerby4240OrderByCase(org.apache.derbyTesting.functionTests.tests.lang.OrderByAndSortAvoidance)java.lang.InternalError: Number of class names exceeds vm limit. at java.lang.ClassLoader.findLoadedClass0(Native Method) at java.lang.ClassLoader.findLoadedClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at java.util.ResourceBundle.loadBundle(Unknown Source) at java.util.ResourceBundle.findBundle(Unknown Source) at java.util.ResourceBundle.getBundleImpl(Unknown Source) at java.util.ResourceBundle.getBundle(Unknown Source) at org.apache.derby.iapi.services.i18n.MessageService.getBundleWithEnDefault(Unknown Source) at org.apache.derby.iapi.services.i18n.MessageService.getBundleForLocale(Unknown Source) at org.apache.derby.impl.services.monitor.BaseMonitor.getBundle(Unknown Source) at org.apache.derby.iapi.services.i18n.MessageService.getBundle(Unknown Source) at org.apache.derby.iapi.services.i18n.MessageService.getCompleteMessage(Unknown Source) at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Unknown Source) at org.apache.derby.impl.jdbc.Util.javaException(Unknown Source) at org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(Unknown Source) at org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(Unknown Source) at org.apache.derby.impl.jdbc.EmbedConnection.handleException(Unknown Source) at org.apache.derby.impl.jdbc.ConnectionChild.handleException(Unknown Source) at org.apache.derby.impl.jdbc.EmbedStatement.execute(Unknown Source) at org.apache.derby.impl.jdbc.EmbedStatement.executeUpdate(Unknown Source) at org.apache.derbyTesting.functionTests.tests.lang.OrderByAndSortAvoidance.setUp(Unknown Source) at org.apache.derbyTesting.junit.BaseTestCase.runBare(Unknown Source) at junit.extensions.TestDecorator.basicRun(Unknown Source) at junit.extensions.TestSetup$1.protect(Unknown Source) at junit.extensions.TestSetup.run(Unknown Source) at org.apache.derbyTesting.junit.BaseTestSetup.run(Unknown Source) at sun.misc.CVM.runMain(Unknown Source)

          People

          • Assignee:
            Ole Solberg
            Reporter:
            Ole Solberg
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development