Details
Description
Since as far as I care to look back, mongodb has passed index "info objects" to the WT table's app_metadata. The index data is converted to a json string representation which contains the collection name.
When this string is malformed and WT hits a parsing error, it's typically discovered via the primary and results in a uassert:
test> db.createCollection("\x7F")
|
{
|
"ok" : 0,
|
"errmsg" : "22: Invalid argument",
|
"code" : 2,
|
"codeName" : "BadValue"
|
}
|
However an existing collection can be renamed without renaming the ns field on an index entry:
test> db.foo.renameCollection("\x7F")
|
{ "ok" : 1 }
|
test> db["\x7F"].find()
|
{ "_id" : ObjectId("5cd472baae8328407ec23421") }
|
With the new unique index format, indexes can have their metadata re-written to note the format the index is currently in. This can happen on an empty collMod command. There are cases where a primary will replicate this collMod without having hit the parsing error itself. A secondary processing this oplog entry will crash.
Attachments
Issue Links
- is documented by
-
DOCS-13452 4.2 only: remove index metadata.infoObj fields from examples.
-
- Closed
-