zhouxu created OAK-8602:
---------------------------

             Summary: javax.jcr.RepositoryException: OakOak0001: GC overhead 
limit exceeded
                 Key: OAK-8602
                 URL: https://issues.apache.org/jira/browse/OAK-8602
             Project: Jackrabbit Oak
          Issue Type: Bug
    Affects Versions: 1.14.0
         Environment: 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.
            Reporter: zhouxu


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:

{color:#FF0000}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){color}



--
This message was sent by Atlassian Jira
(v8.3.2#803003)

Reply via email to