I followed the official guide to upgrade a MongoDB ReplicaSet from 2.6 to 3.0 on the secondary member.

  1. Shutdown mongod (systemctl stop mongodb.service) on secondary
  2. Installed binaries (via apt-get)
  3. Update mongod.conf
  4. Restart mongod: failed!

[NetworkInterfaceASIO-Replication-0] Uncaught exception in NetworkInterfaceASIO IO worker thread of type: Location10320: BSONElement: bad type 108

[NetworkInterfaceASIO-Replication-0] Fatal Assertion 28820

Looks like my databases are corrupt but mongod w/out replSet works fine with the same dbs.

Did I miss something?

  • The primary member and arbiter are still 2.6. – Stephan Aug 26 '16 at 15:06

Found the answer:

In 3.2 WiredTiger is the default storage engine. So I had to remove existing databases (/var/lib/mongod). After starting mongod it will replicate from the primary member.

I accidently updeted directly to 3.2.9 and it worked. That was the reason that WiredTiger was default engine.

  • For reference: if you want to migrate from MMAPV1 to WiredTiger, deleting the existing data files and letting it replicate from scratch is not the recommended method. And secondly, if you don't want to migrate from MMAPV1 to WiredTiger, you can run MongoDB v3.2 in MMAPV1 mode so you don't have to migrate. – Vince Bowdren Feb 27 '17 at 12:46
  • First: And what is the recommended method ? Didn't find anything about it. Second: I wanted to migrate, WiredTiger is the prefered engine. – Stephan Feb 28 '17 at 10:12
  • Sorry, I was wrong about that; I was thinking of the procedure for migrating a standalone server, which is different. The procedure for migrating replica sets is exactly what you did. – Vince Bowdren Feb 28 '17 at 10:20

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.