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)