Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-6896297

rmid randomly crashes with ConcurrentModificationException when running JCK tests concurrently

    Details

    • Type: Bug
    • Status: Closed
    • Priority: P3
    • Resolution: Fixed
    • Affects Version/s: 7
    • Fix Version/s: 7
    • Component/s: core-libs
    • Subcomponent:
    • Resolved In Build:
      b142
    • CPU:
      generic
    • OS:
      generic
    • Verification:
      Verified

      Description

      When running JCK 7 activation tests concurrently on a fast SPARC machine we noticed test failures due to rmid daemon unexpected shutdown caused by the ConcurrentModificationException exception.

      Here is rmid output before it crashes:

      ===========
      java.io.IOException: snapshot failed with exception of type: java.util.ConcurrentModificationException, message was: null
      at sun.rmi.log.ReliableLog.snapshot(ReliableLog.java:383)
      at sun.rmi.server.Activation.addLogRecord(Activation.java:1462)
      at sun.rmi.server.Activation.access$700(Activation.java:135)
      at sun.rmi.server.Activation$GroupEntry.registerObject(Activation.java:890)
      at sun.rmi.server.Activation$ActivationSystemImpl.registerObject(Activation.java:469)
      at sun.reflect.GeneratedMethodAccessor8.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.lang.reflect.Method.invoke(Method.java:613)
      at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:322)
      at sun.rmi.transport.Transport$1.run(Transport.java:177)
      at sun.rmi.transport.Transport$1.run(Transport.java:174)
      at java.security.AccessController.doPrivileged(Native Method)
      at sun.rmi.transport.Transport.serviceCall(Transport.java:173)
      at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:553)
      at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:808)
      at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:667)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
      at java.lang.Thread.run(Thread.java:717)
      ===========

      Here is the first failing test stack trace:

      =======
      java.rmi.activation.ActivationException: log snapshot failed; nested exception is:
      java.io.IOException: snapshot failed with exception of type: java.util.ConcurrentModificationException, message was: null
      at sun.rmi.server.Activation.addLogRecord(Activation.java:1475)
      at sun.rmi.server.Activation.access$700(Activation.java:135)
      at sun.rmi.server.Activation$GroupEntry.registerObject(Activation.java:890)
      at sun.rmi.server.Activation$ActivationSystemImpl.registerObject(Activation.java:469)
      at sun.reflect.GeneratedMethodAccessor8.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.lang.reflect.Method.invoke(Method.java:613)
      at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:322)
      at sun.rmi.transport.Transport$1.run(Transport.java:177)
      at sun.rmi.transport.Transport$1.run(Transport.java:174)
      at java.security.AccessController.doPrivileged(Native Method)
      at sun.rmi.transport.Transport.serviceCall(Transport.java:173)
      at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:553)
      at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:808)
      at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:667)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
      at java.lang.Thread.run(Thread.java:717)
      at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:273)
      at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:251)
      at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:160)
      at sun.rmi.server.Activation$ActivationSystemImpl_Stub.registerObject(Unknown Source)
      at java.rmi.activation.Activatable.exportObject(Activatable.java:427)
      at java.rmi.activation.Activatable.exportObject(Activatable.java:346)
      at java.rmi.activation.Activatable.<init>(Activatable.java:105)
      at javasoft.sqe.tests.api.java.rmi.activation.TestObject1Impl.<init>(TestObject1Impl.java:46)
      at javasoft.sqe.tests.api.java.rmi.activation.ActivationGroup.inactivate4Tests.ActivationGroup2006(inactivate4Tests.java:51)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.lang.reflect.Method.invoke(Method.java:613)
      at javasoft.sqe.javatest.lib.MultiTest.invokeTestCase(MultiTest.java:406)
      at javasoft.sqe.tests.api.java.rmi.activation.ActivationGroupTest.invokeTestCase(ActivationGroupTest.java:66)
      at javasoft.sqe.javatest.lib.MultiTest.run(MultiTest.java:195)
      at javasoft.sqe.tests.api.java.rmi.activation.ActivationTest.run(ActivationTest.java:116)
      at javasoft.sqe.javatest.lib.MultiTest.run(MultiTest.java:127)
      at javasoft.sqe.tests.api.java.rmi.activation.ActivationGroup.inactivate4Tests.main(inactivate4Tests.java:38)
      Caused by: java.io.IOException: snapshot failed with exception of type: java.util.ConcurrentModificationException, message was: null
      at sun.rmi.log.ReliableLog.snapshot(ReliableLog.java:383)
      at sun.rmi.server.Activation.addLogRecord(Activation.java:1462)
      at sun.rmi.server.Activation.access$700(Activation.java:135)
      at sun.rmi.server.Activation$GroupEntry.registerObject(Activation.java:890)
      at sun.rmi.server.Activation$ActivationSystemImpl.registerObject(Activation.java:469)
      at sun.reflect.GeneratedMethodAccessor8.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.lang.reflect.Method.invoke(Method.java:613)
      at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:322)
      at sun.rmi.transport.Transport$1.run(Transport.java:177)
      at sun.rmi.transport.Transport$1.run(Transport.java:174)
      at java.security.AccessController.doPrivileged(Native Method)
      at sun.rmi.transport.Transport.serviceCall(Transport.java:173)
      at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:553)
      at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:808)
      at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:667)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
      at java.lang.Thread.run(Thread.java:717)
      ======
      .JTR file and archived rmid logging directory are attached.

      After the first test failure the rmid daemon crashes that cause other failures.

      It's reproducible on mumble-new.sfbay one time per 2 - 10 JCK runs.

      Here is a sample command for starting pre-configured JCK 7 test suite in loop:

      ag153348@mumble-new$ for i in {0..9}; do echo $i; /java/re/jdk/7/latest/binaries/solaris-sparc/bin/java -jar /java/re/jck/7/qac/latest/binaries/JCK-runtime-7/lib/jtjck.jar -w:work$i api/java_rmi/activation; done
      0
      Oct 29, 2009 3:28:21 AM Harness starting test run with configuration "jck_runtime_solaris"...
      Oct 29, 2009 3:29:05 AM Finished executing all tests, wait for cleanup...
      Oct 29, 2009 3:29:05 AM Harness done with cleanup from test run.
      Test results: passed: 134; failed: 20
      Results written to /home/ag153348/testing/work0.
      Error: Some tests did not pass

      By default on mumble-new.sfbay it runs tests with concurrency=20.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                smarks Stuart Marks
                Reporter:
                agavrilosunw Alexey Gavrilov (Inactive)
              • Votes:
                0 Vote for this issue
                Watchers:
                0 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:
                  Imported:
                  Indexed: