-
Type:
Bug
-
Resolution: Done
-
Priority:
Minor - P4
-
None
-
Affects Version/s: 3.3.10
-
Component/s: Write Ops
-
None
-
ALL
-
None
-
None
-
None
-
None
-
None
-
None
-
None
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"
}
}