| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
scan bounds
|
|
|
|
| |
All users were converted to just use AssertionException.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
There are numerous places in the codebase where `mongo::Status` or
`mongo::StatusWith< T >` objects are returned and never checked.
Many of these are innocuous, but many of them are potentially
severe bugs. This change introduces facilities to permit
compile-time warning of unchecked `Status` and `StatusWith` usage
on clang compilers. It introduces an `ignore` function which is
useful to state that a specific "ignored status" case was
intentional. It not presently an error, in clang builds, to
forget to check a `Status` -- this will come in a later commit.
This also introduces a `transitional_ignore` function, which allows
for easy continual auditing of the codebase for current "whitelisted"
unchecked-status instances. All present "ignored status" cases
have been marked `transitional_ignore`.
|
| |
|
|
|
|
|
|
| |
Instead of tracking the number of idle milliseconds, each ClientCursor
tracks its last time of use. This also resolves related issues
SERVER-28328 and SERVER-19892.
|
|
|
|
|
|
|
|
|
|
|
| |
Ensures that a collection lock is held in at least MODE_IS while
deregistering a PlanExecutor from the cursor manager. Introduces new
PlanExecutor::dispose() and ClientCursor::dispose() methods that must be
called before destruction of those classes, and ensures they are called
before destruction. These calls will thread an OperationContext all the
way through to DocumentSource::dispose() for each stage in a Pipeline,
which will give DocumentSourceCursor a chance to acquire locks and
deregister its PlanExecutor if necessary.
|
| |
|
|
|
|
| |
operations
|
| |
|
|
|
|
| |
This reverts commit 9e7974e4b6e2b3fe5e7741dce6549624113af196.
|
| |
|
|
|
|
|
|
| |
Moves registration of aggregation cursors to the global cursor manager.
This simplifies the logic for acquiring locks and resolving view
namespaces within the getMore and killCursors commands.
|
|
|
|
|
|
|
|
|
| |
Removes the class 'ScopedTransaction' and moves the responsibility of
abandoning the snapshot onto the GlobalLock class. Also renames the
AutoGetCollectionForRead class to AutoGetCollectionForReadCommand, and
adds a new AutoGetCollectionForRead class. Unlike
AutoGetCollectionForReadCommand, this new class will not update the
namespace on the CurrentOp object, nor will it add an entry to Top.
|
| |
|
|
|
|
|
|
| |
This commit is an automated rename of all whole word instances of txn,
_txn, and txnPtr to opCtx, _opCtx, and opCtxPtr, respectively in all
.cpp and .h files in src/mongo.
|
| |
|
|
|
|
| |
methods that will use LogicalClock
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
- Makes cursors come into existence pinned. This fixes a
race condition in which a cursor could time out in between
being constructed/retrieved and being pinned.
- Reduces the public interface of ClientCursor. In
particular, makes ClientCursor's constructor and
destructor private.
- Cleans up header file comments in order to more clearly
indicate expected usage.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This ensures that the index version (aka the "v" field) is always
present in the oplog entry when creating indexes on a 3.4 primary.
We can therefore assume that if the "v" field isn't present in the
corresponding oplog entry, then a v=1 index should be built.
Changes MultiBlockIndex::init() to return the index specifications
that were actually created.
The "repairDatabase", "compact", "copydb", and "cloneCollection"
commands no longer automatically upgrade the index version to the
current default version. Instead, the only command that does so is
the "reIndex" command.
|
|
|
|
| |
admin.system.version
|
|
|
|
|
|
|
|
|
|
|
| |
BSONObj instances should now be compared via the comparator
interface's evaluate() method. This preferred over using
BSONObj::woCompare() directly. If the comparison doesn't
require any database semantics (e.g. there is no collation),
there is a global instance of the SimpleBSONObjComparator
which should be used for BSONObj comparisons. If the
comparison requires special semantics, then callers must
instantiate their own comparator object.
|
| |
|
| |
|
| |
|
|
|
|
| |
This reverts commit 6bbaee174447ee1c9177c72bdd07f050ab07e901.
|
| |
|
|
|
|
|
|
|
| |
cc().makeOperationContext().
Also, make OperationContextImpl's constructor private so that it can only be
constructed via a Client.
|
|
|
|
|
|
| |
with cc().makeOperationContext()."
This reverts commit 0ab34aa7b9c3c48ea6cf17888620fca455284d35.
|
|
|
|
|
|
|
| |
cc().makeOperationContext().
Also, make OperationContextImpl's constructor private so that it can
only be constructed via a Client.
|
| |
|
|
|
|
| |
Implementing the killCursors command in mongos and the mongo shell is further work.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
OperationContext."
This reverts commit e181ea38af737ef7aaf5f8228f870d8c7149b2bb.
|
|
|
|
|
|
| |
OperationContext."
This reverts commit 4ea38c308da292f43e29d32b1b53b7324db0bafe.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
They have been moved from OperationContextImpl. Furthermore, the CurOp stack is
now attached to OperationContext, instead of Client.
With this change, an operation's lifetime is governed by the lifetime of an
OperationContext object. The "_active" field of CurOp is therefore no longer
meaingful. This required fixing the lifetime of OperationContext in a few
places.
A future change will adjust operation lifetime timing to time the lifetime of
the OperationContext object, as well.
|
| |
|
|
|
|
|
|
|
|
|
| |
Client.
Eventually, the CurOp should be a part of the OperationContext. Presently, the only
thing that prevents our maintaining that illusion is that ServiceContextMongoD
expects to be able to extract the CurOp for each existing Client object, but there
is no way to enumerate the OperationContexts for a Client.
|
|
|
|
| |
fields in find command
|