[SERVER-34918] inserts in txns can exceed max document count in a capped collection Created: 09/May/18  Updated: 27/Oct/23  Resolved: 11/May/18

Status: Closed
Project: Core Server
Component/s: Storage
Affects Version/s: 3.7.9
Fix Version/s: None

Type: Bug Priority: Major - P3
Reporter: Robert Guo (Inactive) Assignee: Backlog - Storage Execution Team
Resolution: Works as Designed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Assigned Teams:
Storage Execution
Operating System: ALL
Steps To Reproduce:

/*
 * Set up cluster.
 */
var r = new ReplSetTest({nodes:2});
r.startSet();r.initiate();
 
var dbName = 'test';
var collName = 'test';
 
const sessionOptions = {causalConsistency: false};
const session = r.getPrimary().startSession(sessionOptions);
const sessionDb = session.getDatabase(dbName);
const sessionColl = sessionDb.getCollection(collName);
 
 
/*
 * Repro
 */
 
 
assert.commandWorked(sessionDb.runCommand({create: collName, writeConcern: {w: "majority"}, capped: true, size: 64000, max: 10}));
 
// Insert 11 documents.
session.startTransaction();
for (var i = 0; i < 11; i++) {
    sessionColl.insert({_id: i});
}
session.commitTransaction();
 
// Insert 12 documents.
session.startTransaction();
for (var i = 12; i < 24; i++) {
    sessionColl.insert({_id: i});
}
session.commitTransaction();
 
session.startTransaction();
printjson(sessionColl.find().toArray());
assert.eq(10, sessionColl.find().itcount());
session.commitTransaction();
 
session.endSession();

Participants:

 Description   

Inserts in transaction can exceed the number of max documents allowed in a capped collection and still succeed. These documents are visible to subsequent reads after the transaction has committed.

Inserts exceeding the size of a capped collection will result in a "Transaction has been aborted." error when attempting to run commitTransaction.



 Comments   
Comment by Ian Whalen (Inactive) [ 11/May/18 ]

Hey robert.guo, the capped guarantees are synchronous only on commit so this is expected behavior.

Generated at Thu Feb 08 04:38:16 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.