summaryrefslogtreecommitdiff
path: root/src/mongo/db/s/persistent_task_queue.h
diff options
context:
space:
mode:
authorAllison Easton <allison.easton@mongodb.com>2021-10-20 15:03:56 +0000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2021-10-20 16:20:26 +0000
commite20bc9cd2933ab9c289e2bd7fa8c2120ee7f0e0a (patch)
tree688b3d087406634956217b62691a7dcb8f8e15b9 /src/mongo/db/s/persistent_task_queue.h
parent7a1ba713cbb09a605de4db2bb9ce69477ea11859 (diff)
downloadmongo-e20bc9cd2933ab9c289e2bd7fa8c2120ee7f0e0a.tar.gz
SERVER-52846 Get rid of the old-style (getLastError-requiring) methods on DBDirectClient
Diffstat (limited to 'src/mongo/db/s/persistent_task_queue.h')
-rw-r--r--src/mongo/db/s/persistent_task_queue.h23
1 files changed, 21 insertions, 2 deletions
diff --git a/src/mongo/db/s/persistent_task_queue.h b/src/mongo/db/s/persistent_task_queue.h
index 095dd3c9d55..fcd75ced175 100644
--- a/src/mongo/db/s/persistent_task_queue.h
+++ b/src/mongo/db/s/persistent_task_queue.h
@@ -133,7 +133,16 @@ TaskId PersistentTaskQueue<T>::push(OperationContext* opCtx, const T& t) {
builder.append("_id", recordId);
builder.append("task", t.toBSON());
- dbClient.insert(_storageNss.toString(), builder.obj());
+ write_ops::InsertCommandRequest insertOp(_storageNss);
+ insertOp.setDocuments({builder.obj()});
+ auto response = dbClient.insert(insertOp);
+
+ if (response.getWriteErrors()) {
+ BSONObj firstWriteError = response.getWriteErrors()->front();
+ uasserted(ErrorCodes::Error(firstWriteError.getIntField("code")),
+ firstWriteError.getStringField("errmsg"));
+ }
+
_count++;
}
@@ -155,7 +164,17 @@ TaskId PersistentTaskQueue<T>::pop(OperationContext* opCtx) {
invariant(_count > 0);
builder.append("_id", _currentFront->id);
- client.remove(_storageNss.toString(), builder.obj());
+
+ write_ops::DeleteCommandRequest deleteOp(_storageNss);
+ deleteOp.setDeletes({write_ops::DeleteOpEntry(builder.obj(), false)});
+ auto response = client.remove(deleteOp);
+ auto writeErrors = response.getWriteErrors();
+ if (writeErrors) {
+ BSONObj firstWriteError = writeErrors->front();
+ uasserted(ErrorCodes::Error(firstWriteError.getIntField("code")),
+ firstWriteError.getStringField("errmsg"));
+ }
+
_count--;
TaskId id = _currentFront->id;