diff options
author | Allison Easton <allison.easton@mongodb.com> | 2021-10-20 15:03:56 +0000 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2021-10-20 16:20:26 +0000 |
commit | e20bc9cd2933ab9c289e2bd7fa8c2120ee7f0e0a (patch) | |
tree | 688b3d087406634956217b62691a7dcb8f8e15b9 /src/mongo/db/s/persistent_task_queue.h | |
parent | 7a1ba713cbb09a605de4db2bb9ce69477ea11859 (diff) | |
download | mongo-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.h | 23 |
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; |