-
Type:
Bug
-
Resolution: Fixed
-
Priority:
Major - P3
-
Affects Version/s: 3.6.0-rc3
-
Component/s: Aggregation Framework
-
None
-
Fully Compatible
-
ALL
-
v3.6
-
Query 2017-12-18
-
None
-
None
-
None
-
None
-
None
-
None
-
None
On a replica set a changeStream cursor can be created on a collection where the database does not exist yet:
> db.dropDatabase()
{ "ok" : 1, "operationTime" : Timestamp(1510184057, 1) }
> db.runCommand({"aggregate":"database-does-not-exist", "pipeline":[{'$changeStream': {}}], "cursor": {}})
{
"cursor" : {
"firstBatch" : [ ],
"id" : NumberLong("5437951372965323737"),
"ns" : "test.database-does-not-exist"
},
"ok" : 1,
"operationTime" : Timestamp(1510184077, 1)
}
The same operation on a mongos does not return a cursor:
MongoDB Enterprise mongos> db.dropDatabase()
{
"dropped" : "test",
"ok" : 1,
"$clusterTime" : {
"clusterTime" : Timestamp(1510184413, 9),
"signature" : {
"hash" : BinData(0,"lFkT1OPozsQoRVqqU/5bXxUNhng="),
"keyId" : NumberLong("6486191337619062789")
}
},
"operationTime" : Timestamp(1510184413, 9)
}
MongoDB Enterprise mongos> db.runCommand({"aggregate":"database-does-not-exist", "pipeline":[{'$changeStream': {}}], "cursor": {}})
{
"result" : [ ],
"cursor" : {
"id" : NumberLong(0),
"ns" : "test.database-does-not-exist",
"firstBatch" : [ ]
},
"ok" : 1,
"$clusterTime" : {
"clusterTime" : Timestamp(1510184417, 1),
"signature" : {
"hash" : BinData(0,"KsuOoKtQYUkl2peKWjMv4kJHzzE="),
"keyId" : NumberLong("6486191337619062789")
}
},
"operationTime" : Timestamp(1510184417, 1)
}
This is surprising when combined with the fact that wired tiger drops databases when there are no more collections.
- is related to
-
PYTHON-1405 Test ChangeStreams on mongos
-
- Closed
-