Derby
  1. Derby
  2. DERBY-3689

'PrivilegedActionException: javax.management.InstanceNotFoundException' in '*(VersionMBeanTest / NetworkServerMBeanTest)'

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Minor Minor
    • Resolution: Fixed
    • Affects Version/s: 10.4.1.3, 10.5.1.1, 10.7.1.1, 10.8.1.2
    • Component/s: JMX, Test
    • Environment:
    • Urgency:
      Normal
    • Bug behavior facts:
      Regression Test Failure

      Description

      suitesAll fail *************************************************************
      1) testDerbynetJarAttributeAlpha(org.apache.derbyTesting.functionTests.tests.management.VersionMBeanTest)java.security.PrivilegedActionException: javax.management.InstanceNotFoundException: org.apache.derby:type=Version,system=c013800d-011a-02c6-d312-0000600c993a,jar=derbynet.jar
      suitesAll fail *************************************************************
      .........................................
      .
      .
      .........................................
      .............................
      Time: 8,078.973
      There was 1 error:
      1) testDerbynetJarAttributeAlpha(org.apache.derbyTesting.functionTests.tests.management.VersionMBeanTest)java.security.PrivilegedActionException: javax.management.InstanceNotFoundException: org.apache.derby:type=Version,system=c013800d-011a-02c6-d312-0000600c993a,jar=derbynet.jar
      at java.security.AccessController.doPrivileged(Native Method)
      at org.apache.derbyTesting.functionTests.tests.management.MBeanTest.getAttribute(MBeanTest.java:379)
      at org.apache.derbyTesting.functionTests.tests.management.MBeanTest.checkBooleanAttributeValue(MBeanTest.java:431)
      at org.apache.derbyTesting.functionTests.tests.management.VersionMBeanTest.testDerbynetJarAttributeAlpha(VersionMBeanTest.java:124)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at org.apache.derbyTesting.junit.BaseTestCase.runBare(BaseTestCase.java:101)
      at junit.extensions.TestDecorator.basicRun(TestDecorator.java:24)
      at junit.extensions.TestSetup$1.protect(TestSetup.java:21)
      at junit.extensions.TestSetup.run(TestSetup.java:25)
      at org.apache.derbyTesting.junit.BaseTestSetup.run(BaseTestSetup.java:57)
      at junit.extensions.TestDecorator.basicRun(TestDecorator.java:24)
      at junit.extensions.TestSetup$1.protect(TestSetup.java:21)
      at junit.extensions.TestSetup.run(TestSetup.java:25)
      at junit.extensions.TestDecorator.basicRun(TestDecorator.java:24)
      at junit.extensions.TestSetup$1.protect(TestSetup.java:21)
      at junit.extensions.TestSetup.run(TestSetup.java:25)
      at org.apache.derbyTesting.junit.BaseTestSetup.run(BaseTestSetup.java:57)
      Caused by: javax.management.InstanceNotFoundException: org.apache.derby:type=Version,system=c013800d-011a-02c6-d312-0000600c993a,jar=derbynet.jar
      at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.getMBean(DefaultMBeanServerInterceptor.java:1094)
      at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.getAttribute(DefaultMBeanServerInterceptor.java:662)
      at com.sun.jmx.mbeanserver.JmxMBeanServer.getAttribute(JmxMBeanServer.java:638)
      at org.apache.derbyTesting.functionTests.tests.management.MBeanTest$4.run(MBeanTest.java:382)
      ... 42 more

      FAILURES!!!
      Tests run: 10443, Failures: 0, Errors: 1

      http://dbtg.thresher.com/derby/test/trunk15/jvm1.5/testing/testlog/SunOS-5.10_i86pc-i386/660248-org.apache.derbyTesting.functionTests.suites.All_diff.txt :
      org.apache.derbyTesting.functionTests.suites.All fail *************************************************************
      1) testAttributeAccumulatedConnectionCount(org.apache.derbyTesting.functionTests.tests.management.NetworkServerMBeanTest)java.security.PrivilegedActionException: javax.management.InstanceNotFoundException: org.apache.derby:type=NetworkServer,system=c013800d-011a-2687-5555-ffffe3512519
      2) testAttributeActiveConnectionCount(org.apache.derbyTesting.functionTests.tests.management.NetworkServerMBeanTest)java.security.PrivilegedActionException: javax.management.InstanceNotFoundException: org.apache.derby:type=NetworkServer,system=c013800d-011a-2687-5555-ffffe3512519
      3) testAttributeBytesReceived(org.apache.derbyTesting.functionTests.tests.management.NetworkServerMBeanTest)java.security.PrivilegedActionException: javax.management.InstanceNotFoundException: org.apache.derby:type=NetworkServer,system=c013800d-011a-2687-5555-ffffe3512519
      4) testAttributeBytesReceivedPerSecond(org.apache.derbyTesting.functionTests.tests.management.NetworkServerMBeanTest)java.security.PrivilegedActionException: javax.management.InstanceNotFoundException: org.apache.derby:type=NetworkServer,system=c013800d-011a-2687-5555-ffffe3512519
      5) testAttributeBytesSent(org.apache.derbyTesting.functionTests.tests.management.NetworkServerMBeanTest)java.security.PrivilegedActionException: javax.management.InstanceNotFoundException: org.apache.derby:type=NetworkServer,system=c013800d-011a-2687-5555-ffffe3512519
      6) testAttributeBytesSentPerSecond(org.apache.derbyTesting.functionTests.tests.management.NetworkServerMBeanTest)java.security.PrivilegedActionException: javax.management.InstanceNotFoundException: org.apache.derby:type=NetworkServer,system=c013800d-011a-2687-5555-ffffe3512519
      7) testAttributeConnectionCount(org.apache.derbyTesting.functionTests.tests.management.NetworkServerMBeanTest)java.security.PrivilegedActionException: javax.management.InstanceNotFoundException: org.apache.derby:type=NetworkServer,system=c013800d-011a-2687-5555-ffffe3512519
      8) testAttributeConnectionThreadPoolSize(org.apache.derbyTesting.functionTests.tests.management.NetworkServerMBeanTest)java.security.PrivilegedActionException: javax.management.InstanceNotFoundException: org.apache.derby:type=NetworkServer,system=c013800d-011a-2687-5555-ffffe3512519
      9) testAttributeDrdaHost(org.apache.derbyTesting.functionTests.tests.management.NetworkServerMBeanTest)java.security.PrivilegedActionException: javax.management.InstanceNotFoundException: org.apache.derby:type=NetworkServer,system=c013800d-011a-2687-5555-ffffe3512519
      .
      .
      Time: 4,047.235
      There were 9 errors:
      1) testAttributeAccumulatedConnectionCount(org.apache.derbyTesting.functionTests.tests.management.NetworkServerMBeanTest)java.security.PrivilegedActionException: javax.management.InstanceNotFoundException: org.apache.derby:type=NetworkServer,system=c013800d-011a-2687-5555-ffffe3512519
      at java.security.AccessController.doPrivileged(Native Method)
      at org.apache.derbyTesting.functionTests.tests.management.MBeanTest.getAttribute(MBeanTest.java:379)
      at org.apache.derbyTesting.functionTests.tests.management.NetworkServerMBeanTest.testAttributeAccumulatedConnectionCount(NetworkServerMBeanTest.java:93)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at org.apache.derbyTesting.junit.BaseTestCase.runBare(BaseTestCase.java:103)
      at junit.extensions.TestDecorator.basicRun(TestDecorator.java:24)
      at junit.extensions.TestSetup$1.protect(TestSetup.java:21)
      at junit.extensions.TestSetup.run(TestSetup.java:25)
      at org.apache.derbyTesting.junit.BaseTestSetup.run(BaseTestSetup.java:57)
      at junit.extensions.TestDecorator.basicRun(TestDecorator.java:24)
      at junit.extensions.TestSetup$1.protect(TestSetup.java:21)
      at junit.extensions.TestSetup.run(TestSetup.java:25)
      at org.apache.derbyTesting.junit.BaseTestSetup.run(BaseTestSetup.java:57)
      at junit.extensions.TestDecorator.basicRun(TestDecorator.java:24)
      at junit.extensions.TestSetup$1.protect(TestSetup.java:21)
      at junit.extensions.TestSetup.run(TestSetup.java:25)
      at junit.extensions.TestDecorator.basicRun(TestDecorator.java:24)
      at junit.extensions.TestSetup$1.protect(TestSetup.java:21)
      at junit.extensions.TestSetup.run(TestSetup.java:25)
      Caused by: javax.management.InstanceNotFoundException: org.apache.derby:type=NetworkServer,system=c013800d-011a-2687-5555-ffffe3512519
      at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.getMBean(DefaultMBeanServerInterceptor.java:1010)
      at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.getAttribute(DefaultMBeanServerInterceptor.java:627)
      at com.sun.jmx.mbeanserver.JmxMBeanServer.getAttribute(JmxMBeanServer.java:659)
      at javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1387)
      at javax.management.remote.rmi.RMIConnectionImpl.access$100(RMIConnectionImpl.java:81)
      at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1247)
      at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1343)
      at javax.management.remote.rmi.RMIConnectionImpl.getAttribute(RMIConnectionImpl.java:599)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:294)
      at sun.rmi.transport.Transport$1.run(Transport.java:153)
      at java.security.AccessController.doPrivileged(Native Method)
      at sun.rmi.transport.Transport.serviceCall(Transport.java:149)
      at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:466)
      at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:707)
      at java.lang.Thread.run(Thread.java:595)
      at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:247)
      at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:223)
      at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:126)
      at com.sun.jmx.remote.internal.PRef.invoke(Unknown Source)
      at javax.management.remote.rmi.RMIConnectionImpl_Stub.getAttribute(Unknown Source)
      at javax.management.remote.rmi.RMIConnector$RemoteMBeanServerConnection.getAttribute(RMIConnector.java:857)
      at org.apache.derbyTesting.functionTests.tests.management.MBeanTest$4.run(MBeanTest.java:382)
      ... 45 more
      .
      .
      FAILURES!!!
      Tests run: 8262, Failures: 0, Errors: 9

      1. d3689-1a.diff
        3 kB
        Knut Anders Hatlen

        Activity

        Hide
        Ole Solberg added a comment -

        Extending to also represent 'PrivilegedActionException: javax.management.InstanceNotFoundException' in '*(NetworkServerMBeanTest)'

        Show
        Ole Solberg added a comment - Extending to also represent 'PrivilegedActionException: javax.management.InstanceNotFoundException' in '*(NetworkServerMBeanTest)'
        Hide
        Ole Solberg added a comment -

        '|' in Summary caused problems in (my) Failure DB....

        Show
        Ole Solberg added a comment - '|' in Summary caused problems in (my) Failure DB....
        Hide
        Knut Anders Hatlen added a comment -

        Triaged for 10.5.2. Added component Test since this may be a problem with the setup code for the JMX tests.

        Show
        Knut Anders Hatlen added a comment - Triaged for 10.5.2. Added component Test since this may be a problem with the setup code for the JMX tests.
        Hide
        Knut Anders Hatlen added a comment -

        Seen again on the 10.7.1.1 release candidate: http://dbtg.foundry.sun.com/derby/test/10.7.1.1_RC/logs/jvm1.6-64/sparcN+1/suitesAll/report.txt

        Platform:

        Solaris Express Community Edition snv_116 SPARC
        java version "1.6.0_18"
        Java(TM) SE Runtime Environment (build 1.6.0_18-b07)
        Java HotSpot(TM) Client VM (build 16.0-b13, mixed mode)

        Show
        Knut Anders Hatlen added a comment - Seen again on the 10.7.1.1 release candidate: http://dbtg.foundry.sun.com/derby/test/10.7.1.1_RC/logs/jvm1.6-64/sparcN+1/suitesAll/report.txt Platform: Solaris Express Community Edition snv_116 SPARC java version "1.6.0_18" Java(TM) SE Runtime Environment (build 1.6.0_18-b07) Java HotSpot(TM) Client VM (build 16.0-b13, mixed mode)
        Hide
        Knut Anders Hatlen added a comment -
        Show
        Knut Anders Hatlen added a comment - Seen again when testing the 10.8.1.0 release candidate: http://dbtg.foundry.sun.com/derby/test/10.8.1.0_RC-2/logs/jvm1.7/sparc/suitesAll/report.txt
        Show
        Knut Anders Hatlen added a comment - - edited Seen again when testing the 10.8.1.1 release candidate: http://dbtg.foundry.sun.com/derby/test/10.8.1.1_RC/logs/jvm1.7-64/sparc/suitesAll/report.txt http://dbtg.foundry.sun.com/derby/test/10.8.1.1_RC/logs/jvm1.6-64/sparcN+1/suitesAll/report.txt
        Hide
        Knut Anders Hatlen added a comment -

        I think I see how this could be happening. NetworkServerControlImpl.blockingStart() starts the ClientThread that accepts incoming connections before it registers the MBeans. This means the server will give the impression of being up (that is, it's answering ping requests) before the MBeans are ready. The tests typically start once the server answers ping, and may therefore start accessing the MBeans too early.

        Show
        Knut Anders Hatlen added a comment - I think I see how this could be happening. NetworkServerControlImpl.blockingStart() starts the ClientThread that accepts incoming connections before it registers the MBeans. This means the server will give the impression of being up (that is, it's answering ping requests) before the MBeans are ready. The tests typically start once the server answers ping, and may therefore start accessing the MBeans too early.
        Hide
        Knut Anders Hatlen added a comment -

        Adding Thread.sleep(1000) after clientThread.start() in NetworkServerControlImpl.blockingStart() makes this failure reproduce reliably. I'm not sure if this is a server bug, or if it's just a test bug. One might imagine fixing it by making the test framework ping the JMX functionality until it's up before starting the test, similar to what it does to give the network server time to start. But changing the order of the startup to make it more test friendly sounds like an easy enough solution, and I cannot see that registering the MBeans before we start accepting connections should cause any problems, so I'll make an attempt on that approach.

        Show
        Knut Anders Hatlen added a comment - Adding Thread.sleep(1000) after clientThread.start() in NetworkServerControlImpl.blockingStart() makes this failure reproduce reliably. I'm not sure if this is a server bug, or if it's just a test bug. One might imagine fixing it by making the test framework ping the JMX functionality until it's up before starting the test, similar to what it does to give the network server time to start. But changing the order of the startup to make it more test friendly sounds like an easy enough solution, and I cannot see that registering the MBeans before we start accepting connections should cause any problems, so I'll make an attempt on that approach.
        Hide
        Knut Anders Hatlen added a comment -

        Here's a patch that makes the network server register the MBeans before it starts accepting connections from the client. Since the test framework makes sure the tests don't start until the network server accepts connections, this reordering ensures that the MBeans are registered and ready for testing when the test starts.

        All the regression tests ran cleanly with the patch in my environment.

        Show
        Knut Anders Hatlen added a comment - Here's a patch that makes the network server register the MBeans before it starts accepting connections from the client. Since the test framework makes sure the tests don't start until the network server accepts connections, this reordering ensures that the MBeans are registered and ready for testing when the test starts. All the regression tests ran cleanly with the patch in my environment.
        Hide
        Knut Anders Hatlen added a comment -

        Committed revision 1138444.

        Show
        Knut Anders Hatlen added a comment - Committed revision 1138444.
        Hide
        Knut Anders Hatlen added a comment -

        Merged to 10.8 and committed revision 1141116.

        Show
        Knut Anders Hatlen added a comment - Merged to 10.8 and committed revision 1141116.
        Hide
        Myrna van Lunteren added a comment -

        reopening to backport to 10.7, 10.6, 10.5.

        Show
        Myrna van Lunteren added a comment - reopening to backport to 10.7, 10.6, 10.5.
        Hide
        Myrna van Lunteren added a comment -

        backported the fix to 10.5 with revision 1153905, to 10.6 with revision 1153957, and to 10.7 with revision 1153953.

        Show
        Myrna van Lunteren added a comment - backported the fix to 10.5 with revision 1153905, to 10.6 with revision 1153957, and to 10.7 with revision 1153953.

          People

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

            Dates

            • Created:
              Updated:
              Resolved:

              Development