Info
Right now, the listDatabases command checks for locks on each database (https://github.com/mongodb/mongo/blob/d7bd800d3d06004c4ca9114627ee882442e4d5e4/src/mongo/db/commands/list_databases.cpp#L129-L146) before actually checking the filter on the query (https://github.com/mongodb/mongo/blob/d7bd800d3d06004c4ca9114627ee882442e4d5e4/src/mongo/db/commands/list_databases.cpp#L148-L151).
This means that if any user is doing a command that takes a lock on database a, (i.e. building an index), no one can run a listDatabase command, even if they've used a filter that should exclude database a.
cc geert.bosch
Top User Comments
xgen-internal-githook commented on Fri, 3 Mar 2017 23:48:25 +0000:
Author:
{u'username': u'GeertBosch', u'name': u'Geert Bosch', u'email': u'geert@mongodb.com'}
Message: SERVER-28049 Apply name-only filters before locking in listDatabases
(cherry picked from commit ef5a80fb0f1900d3e82dc8c60a536f17dd4d1268)
Branch: v3.4
https://github.com/mongodb/mongo/commit/41ca3715262d3411bf2dad031318bea92795288a
xgen-internal-githook commented on Mon, 20 Feb 2017 02:43:55 +0000:
Author:
{u'username': u'GeertBosch', u'name': u'Geert Bosch', u'email': u'geert@mongodb.com'}
Message: SERVER-28049 Apply name-only filters before locking in listDatabases
Branch: master
https://github.com/mongodb/mongo/commit/ef5a80fb0f1900d3e82dc8c60a536f17dd4d1268