[SERVER-46872] yield_with_drop.js FSM workload should permit upserts to fail with NoProgressMade Created: 14/Mar/20  Updated: 29/Oct/23  Resolved: 16/Mar/20

Status: Closed
Project: Core Server
Component/s: Querying
Affects Version/s: None
Fix Version/s: 4.2.6, 4.4.0-rc0, 4.7.0

Type: Task Priority: Major - P3
Reporter: Max Hirschhorn Assignee: Max Hirschhorn
Resolution: Fixed Votes: 0
Labels: sharding-4.4-stabilization
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Backports
Depends
Related
is related to SERVER-32567 Replace queryoptimizer3.js with FSM test Closed
Backwards Compatibility: Fully Compatible
Backport Requested:
v4.4, v4.2
Sprint: Sharding 2020-03-23
Participants:
Linked BF Score: 18

 Description   

The upserts performed by the $config.data.create() function may fail with a NoProgressMade error response from mongos due to a shard returning a CannotImplicitlyCreateCollection error response after the collection has been dropped.

const cmdRes = db.runCommand({
    update: collName,
    updates: [{
        q: {_id: i},
        u: {$set: {a: i, b: this.nDocs - i, c: i, d: this.nDocs - i, e: "foo"}},
        upsert: true
    }]
});

We should add ErrorCodes.NoProgressMade to the $config.data.kAllowedErrors list.



 Comments   
Comment by Githook User [ 25/Mar/20 ]

Author:

{'email': 'max.hirschhorn@mongodb.com', 'name': 'Max Hirschhorn', 'username': 'visemet'}

Message: SERVER-46872 Tolerate NoProgressMade response in yield_with_drop.js.

It is possible for mongos to fail to upsert the document because a shard
responds with a CannotImplicitlyCreateCollection error response after
the collection has been dropped.

(cherry picked from commit 66a6a29c5fae2a365c22b39f445c871e97a1e8a1)
Branch: v4.2
https://github.com/mongodb/mongo/commit/1012719598e6e076a824135061bc954f81b2f106

Comment by Githook User [ 16/Mar/20 ]

Author:

{'username': 'visemet', 'name': 'Max Hirschhorn', 'email': 'max.hirschhorn@mongodb.com'}

Message: SERVER-46872 Tolerate NoProgressMade response in yield_with_drop.js.

It is possible for mongos to fail to upsert the document because a shard
responds with a CannotImplicitlyCreateCollection error response after
the collection has been dropped.

(cherry picked from commit 66a6a29c5fae2a365c22b39f445c871e97a1e8a1)
Branch: v4.4
https://github.com/mongodb/mongo/commit/296e2e9bdc887088db9e89558156bcc1913bd75b

Comment by Githook User [ 16/Mar/20 ]

Author:

{'name': 'Max Hirschhorn', 'username': 'visemet', 'email': 'max.hirschhorn@mongodb.com'}

Message: SERVER-46872 Tolerate NoProgressMade response in yield_with_drop.js.

It is possible for mongos to fail to upsert the document because a shard
responds with a CannotImplicitlyCreateCollection error response after
the collection has been dropped.
Branch: master
https://github.com/mongodb/mongo/commit/66a6a29c5fae2a365c22b39f445c871e97a1e8a1

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