Details
-
Bug
-
Resolution: Done
-
Minor - P4
-
None
-
3.3.10
-
None
-
ALL
Description
On a fresh replica set with three nodes, version 3.3.10-421-gbd66e1b, the dropDatabase command doesn't check if its writeConcern can be satisfied. A writeConcern of w: 99 should cause a writeConcernError, but it doesn't:
replset:PRIMARY> db.runCommand({dropDatabase: 1, writeConcern: {w: 99}})
|
{ "ok" : 1 }
|
Once we've created any databases, dropDatabase with writeConcern seems to work as expected. Now it causes a writeConcernError:
replset:PRIMARY> db.c.insert({})
|
WriteResult({ "nInserted" : 1 })
|
replset:PRIMARY> db.runCommand({dropDatabase: 1, writeConcern: {w: 99}})
|
{
|
"dropped" : "test",
|
"ok" : 1,
|
"writeConcernError" : {
|
"code" : 100,
|
"errmsg" : "Not enough data-bearing nodes"
|
}
|
}
|
From this point forward, even after dropping all databases except "local", dropDatabases still reports a writeConcernError with w: 99 as expected:
replset:PRIMARY> use foo
|
switched to db foo
|
replset:PRIMARY> db.runCommand({dropDatabase: 1, writeConcern: {w: 99}})
|
{
|
"ok" : 1,
|
"writeConcernError" : {
|
"code" : 100,
|
"errmsg" : "Not enough data-bearing nodes"
|
}
|
}
|
replset:PRIMARY> use bar
|
switched to db bar
|
replset:PRIMARY> db.runCommand({dropDatabase: 1, writeConcern: {w: 99}})
|
{
|
"ok" : 1,
|
"writeConcernError" : {
|
"code" : 100,
|
"errmsg" : "Not enough data-bearing nodes"
|
}
|
}
|
replset:PRIMARY> db.runCommand({dropDatabase: 1, writeConcern: {w: 99}})
|
{
|
"ok" : 1,
|
"writeConcernError" : {
|
"code" : 100,
|
"errmsg" : "Not enough data-bearing nodes"
|
}
|
}
|