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