-
Type: Bug
-
Resolution: Done
-
Priority: Critical - P2
-
Affects Version/s: 2.6.0-rc1
-
Component/s: Index Maintenance
-
None
-
ALL
If you are running a mixed-mode 2.4/2.6 replica set and you execute an ensureIndex on a 2.4 primary with an index definition that does not match the existing definition, the 2.6.1-rc0 secondary will die with the following:
2014-03-14T09:50:17.507-0700 [repl writer worker 4] ERROR: writer worker caught exception: :: caused by :: 67 Index with name: nameIdx already exists with different options on: { ts: Timestamp 1394815817000|467, h: -4991379662634739239, v: 2, op: "i", ns: "mmsdbconfig.system.indexes", o: { _id: ObjectId('53233349c421b4c92f255cf9'), ns: "mmsdbconfig.config.customers", key: { n: 1.0 }, name: "nameIdx", unique: true } } 2014-03-14T09:50:17.507-0700 [repl writer worker 4] Fatal Assertion 16360 2014-03-14T09:50:17.507-0700 [repl writer worker 4] ***aborting after fassert() failure
To Reproduce
1. Create mixed version replica set with 2.4 as the primary.
2. On the primary
db.users.ensureIndex({username:1},{name: 'idxUsername'}) db.users.ensureIndex({username:1},{name: 'idxUsername', unique:true})
The 2.4 primary will ignore the second ensureIndex. However, the generated oplog will cause the secondary to crash with the above error.
- related to
-
SERVER-13404 2.6 secondaries abort when replicated index spec contains a dollar-sign field
- Closed
-
SERVER-13496 Creating index with same name but different spec in mixed version replicaset can abort replication
- Closed