[ https://issues.apache.org/jira/browse/OAK-9535?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Marcel Reutegger updated OAK-9535: ---------------------------------- Labels: candidate_oak_1_8 (was: ) > 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 > Priority: Major > Labels: candidate_oak_1_8 > Fix For: 1.42.0, 1.22.13 > > > 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.20.10#820010)