[SERVER-21345] applyOps returns wrong error code when document validation fails Created: 08/Nov/15  Updated: 06/Dec/22  Resolved: 04/Jun/16

Status: Closed
Project: Core Server
Component/s: Write Ops
Affects Version/s: None
Fix Version/s: 3.3.8

Type: Bug Priority: Minor - P4
Reporter: Daniel Pasette (Inactive) Assignee: Backlog - Storage Execution Team
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Related
is related to SERVER-23326 applyOps should use a single WriteUni... Closed
is related to SERVER-21346 Add jstest for bypassDocumentValidation Closed
Assigned Teams:
Storage Execution
Backwards Compatibility: Fully Compatible
Operating System: ALL
Steps To Reproduce:

(function() { 
    'use strict';                                                                                   
                                                                                                    
    var dbName = 'bypass_document_validation';                                                      
    var collName = 'bypass_document_validation';                                                    
    var myDb = db.getSiblingDB(dbName);                                                             
    var coll = myDb[collName];                                                                      
    var docValidationErrorCode = ErrorCodes.DocumentValidationFailure;                              
    coll.drop();                                                                                    
                                                                                                    
    // Create a collection with a validation rule                                                   
    assert.commandWorked(myDb.runCommand({create: collName, validator: {a: {$exists: true}}}));                                                                                                         
    // Test applyOps with a simple insert                                                           
    var op = [{ts: Timestamp(0, 0), h: 1, v: 2, op: 'i', ns: coll.getFullName(), o: {_id: 1}}];     
    // applyOps is returning ErrorCodes.UnknownError (8) instead of DocumentValidationFailure  
    assert.commandFailedWithCode( 
        myDb.runCommand({applyOps: op, bypassDocumentValidation: false}), docValidationErrorCode        );                                                                                              
    assert.eq(0, coll.count({_id: 1}));                                                                                                    
})(); 

Participants:

 Description   

applyOps is returning ErrorCodes.UnknownError (8) instead of ErrorCodes.DocumentValidationFailure (121).



 Comments   
Comment by Daniel Pasette (Inactive) [ 04/Jun/16 ]

Fixed as part of work done for SERVER-23326

Comment by Daniel Pasette (Inactive) [ 08/Nov/15 ]

This issue discovered while doing test for SERVER-21346

Generated at Thu Feb 08 03:57:05 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.