validateViewDefinitionBSON is meant to take in the db name, however in DurableViewCatalog::onExternalInsert we pass the full namespace. This causes this uassert to fail because database names are not allowed to contain a ".", and since we pass the full namespace for dbName, it will contain a ".". The exception is currently swallowed because we catch exceptions thrown by onExternalInsert.
However, if we change DurableViewCatalog::onExternalInsert to correctly pass the dbName, we'll eventually hit this invariant in CollectionCatalog::createView because we don't actually ever take a collection lock on the view name currently - we have a lock on the database and the collection name itself, but not the view.
- is caused by
-
SERVER-53870 Improve view creation performance over time
- Closed
- is depended on by
-
SERVER-66286 DurableViewCatalog to convert from StringData to DatabaseName
- Closed