-
Type: Task
-
Resolution: Won't Do
-
Priority: Major - P3
-
Affects Version/s: None
-
Component/s: manual
-
Labels:
Description
When migrating from 3.4 to 3.6, some customers can experience an error on their SECONDARY nodes due to a replset.minvalid document:
2020-02-05T12:04:58.394+0000 I - [initandlisten] Detected data files in /var/lib/mongodb created by the ‘mmapv1’ storage engine, so setting the active storage engine to ‘mmapv1’. 2020-02-05T12:04:58.403+0000 I JOURNAL [initandlisten] journal dir=/var/lib/mongodb/journal 2020-02-05T12:04:58.403+0000 I JOURNAL [initandlisten] recover : no journal files present, no recovery needed 2020-02-05T12:04:58.404+0000 I JOURNAL [durability] Durability thread started 2020-02-05T12:04:58.405+0000 I JOURNAL [journal writer] Journal writer thread started 2020-02-05T12:04:58.405+0000 I CONTROL [initandlisten] 2020-02-05T12:04:58.405+0000 I CONTROL [initandlisten] ** WARNING: Access control is not enabled for the database. 2020-02-05T12:04:58.405+0000 I CONTROL [initandlisten] ** Read and write access to data and configuration is unrestricted. 2020-02-05T12:04:58.405+0000 I CONTROL [initandlisten] 2020-02-05T12:04:58.913+0000 I FTDC [initandlisten] Initializing full-time diagnostic data capture with directory ‘/var/lib/mongodb/diagnostic.data’ 2020-02-05T12:04:58.984+0000 I REPL [initandlisten] Did not find local initialized voted for document at startup. 2020-02-05T12:04:58.985+0000 I REPL [initandlisten] Did not find local Rollback ID document at startup. Creating one. 2020-02-05T12:04:58.985+0000 I STORAGE [initandlisten] createCollection: local.system.rollback.id with no UUID. 2020-02-05T12:04:58.986+0000 I REPL [initandlisten] Initialized the rollback ID to 1 2020-02-05T12:04:59.032+0000 F REPL [initandlisten] Caught exception during replication recovery: Location40415: BSON field ‘MinValidDocument.h’ is an unknown field. 2020-02-05T12:04:59.032+0000 F - [initandlisten] terminate() called. An exception is active; attempting to gather more information 2020-02-05T12:04:59.055+0000 F - [initandlisten] DBException::toString(): Location40415: BSON field ‘MinValidDocument.h’ is an unknown field. Actual exception type: mongo::error_details::throwExceptionForStatus(mongo::Status const&)::NonspecificAssertionException
Scope of changes
Add a section to https://docs.mongodb.com/manual/tutorial/troubleshoot-replica-sets/ that outlines:
1. how to identify the replset.minvalid contains invalid docs
db.getSiblingDB("local").replset.minvalid.find({}, { _id: 0, h: 1, op: 1, ns: 1, o: 1 })
If the query displays any values then step 2 will be necessary
2. how to update the docs:
db.getSiblingDB("local").replset.minvalid.update({},{$unset:{h:"",op:"",ns:"",o:""}})