You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-issues@jackrabbit.apache.org by "Stefan Egli (Jira)" <ji...@apache.org> on 2021/08/16 16:13:00 UTC
[jira] [Created] (OAK-9535) Support recovery of large branch merge
Stefan Egli created OAK-9535:
--------------------------------
Summary: Support recovery of large branch merge
Key: OAK-9535
URL: https://issues.apache.org/jira/browse/OAK-9535
Project: Jackrabbit Oak
Issue Type: Bug
Components: documentmk
Affects Versions: 1.40.0
Reporter: Stefan Egli
Assignee: Stefan Egli
When branch changes get too large, they are committed and a journal entry is created as a result. This way, journal entries - in terms of their byte size they use up - cannot grow large.
When a recovery happenes the mechanism is slightly different: The recovery attempts to store a single big journal entry. In case of MongoDB, this can result in the document to be larger than 16MB and below exception.
The recovery must create multiple journal entries as well to avoid running into the MongoDB document size limit.
{noformat}
Payload document size is larger than maximum of 16777216.
org.bson.BsonMaximumSizeExceededException: Payload document size is larger than maximum of 16777216.
at com.mongodb.internal.connection.BsonWriterHelper.writePayload(BsonWriterHelper.java:68) [org.mongodb.mongo-java-driver:3.12.7]
at com.mongodb.internal.connection.CommandMessage.encodeMessageBodyWithMetadata(CommandMessage.java:147) [org.mongodb.mongo-java-driver:3.12.7]
at com.mongodb.internal.connection.RequestMessage.encode(RequestMessage.java:138) [org.mongodb.mongo-java-driver:3.12.7]
at com.mongodb.internal.connection.CommandMessage.encode(CommandMessage.java:61) [org.mongodb.mongo-java-driver:3.12.7]
at com.mongodb.internal.connection.InternalStreamConnection.sendAndReceive(InternalStreamConnection.java:248) [org.mongodb.mongo-java-driver:3.12.7]
at com.mongodb.internal.connection.UsageTrackingInternalConnection.sendAndReceive(UsageTrackingInternalConnection.java:99) [org.mongodb.mongo-java-driver:3.12.7]
at com.mongodb.internal.connection.DefaultConnectionPool$PooledConnection.sendAndReceive(DefaultConnectionPool.java:450) [org.mongodb.mongo-java-driver:3.12.7]
at com.mongodb.internal.connection.CommandProtocolImpl.execute(CommandProtocolImpl.java:72) [org.mongodb.mongo-java-driver:3.12.7]
at com.mongodb.internal.connection.DefaultServer$DefaultServerProtocolExecutor.execute(DefaultServer.java:226) [org.mongodb.mongo-java-driver:3.12.7]
at com.mongodb.internal.connection.DefaultServerConnection.executeProtocol(DefaultServerConnection.java:269) [org.mongodb.mongo-java-driver:3.12.7]
at com.mongodb.internal.connection.DefaultServerConnection.command(DefaultServerConnection.java:131) [org.mongodb.mongo-java-driver:3.12.7]
at com.mongodb.operation.MixedBulkWriteOperation.executeCommand(MixedBulkWriteOperation.java:435) [org.mongodb.mongo-java-driver:3.12.7]
at com.mongodb.operation.MixedBulkWriteOperation.executeBulkWriteBatch(MixedBulkWriteOperation.java:261) [org.mongodb.mongo-java-driver:3.12.7]
at com.mongodb.operation.MixedBulkWriteOperation.access$700(MixedBulkWriteOperation.java:72) [org.mongodb.mongo-java-driver:3.12.7]
at com.mongodb.operation.MixedBulkWriteOperation$1.call(MixedBulkWriteOperation.java:205) [org.mongodb.mongo-java-driver:3.12.7]
at com.mongodb.operation.MixedBulkWriteOperation$1.call(MixedBulkWriteOperation.java:196) [org.mongodb.mongo-java-driver:3.12.7]
at com.mongodb.operation.OperationHelper.withReleasableConnection(OperationHelper.java:501) [org.mongodb.mongo-java-driver:3.12.7]
at com.mongodb.operation.MixedBulkWriteOperation.execute(MixedBulkWriteOperation.java:196) [org.mongodb.mongo-java-driver:3.12.7]
at com.mongodb.operation.MixedBulkWriteOperation.execute(MixedBulkWriteOperation.java:71) [org.mongodb.mongo-java-driver:3.12.7]
at com.mongodb.client.internal.MongoClientDelegate$DelegateOperationExecutor.execute(MongoClientDelegate.java:211) [org.mongodb.mongo-java-driver:3.12.7]
at com.mongodb.client.internal.MongoCollectionImpl.executeInsertMany(MongoCollectionImpl.java:529) [org.mongodb.mongo-java-driver:3.12.7]
at com.mongodb.client.internal.MongoCollectionImpl.insertMany(MongoCollectionImpl.java:524) [org.mongodb.mongo-java-driver:3.12.7]
at com.mongodb.client.internal.MongoCollectionImpl.insertMany(MongoCollectionImpl.java:518) [org.mongodb.mongo-java-driver:3.12.7]
at org.apache.jackrabbit.oak.plugins.document.mongo.MongoDocumentStore.lambda$create$11(MongoDocumentStore.java:1354) [org.apache.jackrabbit.oak-store-document:1.39.0.R1888564]
at org.apache.jackrabbit.oak.plugins.document.mongo.MongoDocumentStore.execute(MongoDocumentStore.java:1902) [org.apache.jackrabbit.oak-store-document:1.39.0.R1888564]
at org.apache.jackrabbit.oak.plugins.document.mongo.MongoDocumentStore.create(MongoDocumentStore.java:1352) [org.apache.jackrabbit.oak-store-document:1.39.0.R1888564]
at org.apache.jackrabbit.oak.plugins.document.util.LeaseCheckDocumentStoreWrapper.create(LeaseCheckDocumentStoreWrapper.java:120) [org.apache.jackrabbit.oak-store-document:1.39.0.R1888564]
at org.apache.jackrabbit.oak.plugins.document.LastRevRecoveryAgent$3.acquiring(LastRevRecoveryAgent.java:468) [org.apache.jackrabbit.oak-store-document:1.39.0.R1888564]
at org.apache.jackrabbit.oak.plugins.document.UnsavedModifications.persist(UnsavedModifications.java:166) [org.apache.jackrabbit.oak-store-document:1.39.0.R1888564]
at org.apache.jackrabbit.oak.plugins.document.LastRevRecoveryAgent.recover(LastRevRecoveryAgent.java:435) [org.apache.jackrabbit.oak-store-document:1.39.0.R1888564]
at org.apache.jackrabbit.oak.plugins.document.LastRevRecoveryAgent.recover(LastRevRecoveryAgent.java:206) [org.apache.jackrabbit.oak-store-document:1.39.0.R1888564]
at org.apache.jackrabbit.oak.plugins.document.LastRevRecoveryAgent.recoverCandidates(LastRevRecoveryAgent.java:613) [org.apache.jackrabbit.oak-store-document:1.39.0.R1888564]
at org.apache.jackrabbit.oak.plugins.document.LastRevRecoveryAgent.recover(LastRevRecoveryAgent.java:172) [org.apache.jackrabbit.oak-store-document:1.39.0.R1888564]
at org.apache.jackrabbit.oak.plugins.document.LastRevRecoveryAgent.recover(LastRevRecoveryAgent.java:191) [org.apache.jackrabbit.oak-store-document:1.39.0.R1888564]
at org.apache.jackrabbit.oak.plugins.document.LastRevRecoveryAgent.performRecoveryIfNeeded(LastRevRecoveryAgent.java:674) [org.apache.jackrabbit.oak-store-document:1.39.0.R1888564]
at org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreService$LastRevRecoveryJob.run(DocumentNodeStoreService.java:992) [org.apache.jackrabbit.oak-store-document:1.39.0.R1888564]
{noformat}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)