Uploaded image for project: 'Jackrabbit Oak'
  1. Jackrabbit Oak
  2. OAK-8602

javax.jcr.RepositoryException: OakOak0001: GC overhead limit exceeded

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Invalid
    • 1.14.0
    • None
    • None
    • None
    • I am runing the oak instance on my local windows machine and the version of oak is 1.14.0.The DocumentNodeStore is Mongodb and the IndexProvider is SolrIndexProvider with async index.

    Description

      This problem occurs to I am importing a large of data to the repository.I use jmeter to import data in 5 threads and max loop times of each thread is 200000.When the count of sample reach to about 20000,the oak throws the javax.jcr.RepositoryException: OakOak0001: GC overhead limit exceeded.The complete exception information is as follows:

      javax.jcr.RepositoryException: OakOak0001: GC overhead limit exceeded
      at org.apache.jackrabbit.oak.api.CommitFailedException.asRepositoryException(CommitFailedException.java:250)
      at org.apache.jackrabbit.oak.api.CommitFailedException.asRepositoryException(CommitFailedException.java:213)
      at org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.newRepositoryException(SessionDelegate.java:669)
      at org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.save(SessionDelegate.java:495)
      at org.apache.jackrabbit.oak.jcr.session.SessionImpl$8.performVoid(SessionImpl.java:420)
      at org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performVoid(SessionDelegate.java:273)
      at org.apache.jackrabbit.oak.jcr.session.SessionImpl.save(SessionImpl.java:417)
      at cn.amberdata.afc.domain.permission.AfACL.grantJcrPermit(AfACL.java:215)
      at cn.amberdata.afc.domain.permission.AfACL.grant(AfACL.java:182)
      at cn.amberdata.afc.domain.permission.AfACL.grantPermit(AfACL.java:235)
      at cn.amberdata.afc.domain.object.AfPersistentObject.setACL(AfPersistentObject.java:381)
      at cn.amberdata.afc.common.util.ACLUtils.doSetAclToTargetFormSource(ACLUtils.java:62)
      at cn.amberdata.afc.common.util.ACLUtils.setAclToTargetFormSource(ACLUtils.java:40)
      at cn.amberdata.common.core.persistence.dao.impl.AsyncTaskDaoImpl.extendsParentAcl(AsyncTaskDaoImpl.java:105)
      at sun.reflect.GeneratedMethodAccessor167.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
      at java.lang.reflect.Method.invoke(Unknown Source)
      at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:343)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:197)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
      at org.springframework.aop.interceptor.AsyncExecutionInterceptor.lambda$invoke$0(AsyncExecutionInterceptor.java:115)
      at java.util.concurrent.FutureTask.run$$$capture(Unknown Source)
      at java.util.concurrent.FutureTask.run(Unknown Source)
      at java.lang.Thread.run(Unknown Source)
      Caused by: org.apache.jackrabbit.oak.api.CommitFailedException: OakOak0001: GC overhead limit exceeded
      at org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreBranch.mergeFailed(DocumentNodeStoreBranch.java:342)
      at org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreBranch.access$600(DocumentNodeStoreBranch.java:56)
      at org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreBranch$InMemory.merge(DocumentNodeStoreBranch.java:554)
      at org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreBranch.merge0(DocumentNodeStoreBranch.java:196)
      at org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreBranch.merge(DocumentNodeStoreBranch.java:120)
      at org.apache.jackrabbit.oak.plugins.document.DocumentRootBuilder.merge(DocumentRootBuilder.java:170)
      at org.apache.jackrabbit.oak.plugins.document.DocumentNodeStore.merge(DocumentNodeStore.java:1875)
      at org.apache.jackrabbit.oak.core.MutableRoot.commit(MutableRoot.java:251)
      at org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.commit(SessionDelegate.java:346)
      at org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.save(SessionDelegate.java:493)
      ... 20 more
      Caused by: java.lang.OutOfMemoryError: GC overhead limit exceeded
      at java.util.Vector.<init>(Unknown Source)
      at java.util.Vector.<init>(Unknown Source)
      at java.util.Vector.<init>(Unknown Source)
      at java.util.Stack.<init>(Unknown Source)
      at org.bson.AbstractBsonWriter.<init>(AbstractBsonWriter.java:38)
      at org.bson.AbstractBsonWriter.<init>(AbstractBsonWriter.java:50)
      at org.bson.BsonDocumentWriter.<init>(BsonDocumentWriter.java:44)
      at org.bson.BsonDocumentWrapper.getUnwrapped(BsonDocumentWrapper.java:194)
      at org.bson.BsonDocumentWrapper.isEmpty(BsonDocumentWrapper.java:115)
      at com.mongodb.operation.BulkWriteBatch$WriteRequestEncoder.encode(BulkWriteBatch.java:395)
      at com.mongodb.operation.BulkWriteBatch$WriteRequestEncoder.encode(BulkWriteBatch.java:377)
      at org.bson.codecs.BsonDocumentWrapperCodec.encode(BsonDocumentWrapperCodec.java:63)
      at org.bson.codecs.BsonDocumentWrapperCodec.encode(BsonDocumentWrapperCodec.java:29)
      at com.mongodb.internal.connection.BsonWriterHelper.writeDocument(BsonWriterHelper.java:75)
      at com.mongodb.internal.connection.BsonWriterHelper.writePayload(BsonWriterHelper.java:59)
      at com.mongodb.internal.connection.CommandMessage.encodeMessageBodyWithMetadata(CommandMessage.java:143)
      at com.mongodb.internal.connection.RequestMessage.encode(RequestMessage.java:138)
      at com.mongodb.internal.connection.CommandMessage.encode(CommandMessage.java:57)
      at com.mongodb.internal.connection.InternalStreamConnection.sendAndReceive(InternalStreamConnection.java:244)
      at com.mongodb.internal.connection.UsageTrackingInternalConnection.sendAndReceive(UsageTrackingInternalConnection.java:99)
      at com.mongodb.internal.connection.DefaultConnectionPool$PooledConnection.sendAndReceive(DefaultConnectionPool.java:444)
      at com.mongodb.internal.connection.CommandProtocolImpl.execute(CommandProtocolImpl.java:72)
      at com.mongodb.internal.connection.DefaultServer$DefaultServerProtocolExecutor.execute(DefaultServer.java:200)
      at com.mongodb.internal.connection.DefaultServerConnection.executeProtocol(DefaultServerConnection.java:269)
      at com.mongodb.internal.connection.DefaultServerConnection.command(DefaultServerConnection.java:131)
      at com.mongodb.operation.MixedBulkWriteOperation.executeCommand(MixedBulkWriteOperation.java:419)
      at com.mongodb.operation.MixedBulkWriteOperation.executeBulkWriteBatch(MixedBulkWriteOperation.java:257)
      at com.mongodb.operation.MixedBulkWriteOperation.access$700(MixedBulkWriteOperation.java:68)
      at com.mongodb.operation.MixedBulkWriteOperation$1.call(MixedBulkWriteOperation.java:201)
      at com.mongodb.operation.MixedBulkWriteOperation$1.call(MixedBulkWriteOperation.java:192)
      at com.mongodb.operation.OperationHelper.withReleasableConnection(OperationHelper.java:424)
      at com.mongodb.operation.MixedBulkWriteOperation.execute(MixedBulkWriteOperation.java:192)

      Attachments

        1. 1.jpg
          202 kB
          zhouxu
        2. 2.jpg
          254 kB
          zhouxu
        3. 3.jpg
          249 kB
          zhouxu
        4. 4.jpg
          244 kB
          zhouxu
        5. 5.jpg
          163 kB
          zhouxu

        Activity

          People

            Unassigned Unassigned
            zhouxu245 zhouxu
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: