For an upgrade to be performed correctly it's important that modules are being upgraded at the same time the database is being upgraded.
An example of when this might be violated is:
1. You install a clean version of the latest Mango and a new empty database is created.
2. You shut down this Mango and then copy in a database from an older version.
3. Now when you start Mango you may have problems because a full upgrade was not performed.
The correct way to do an upgrade is to:
1. Unzip the latest Mango files but do not start Mango. (This will leave all the modules in the zipped state)
2. Copy your database from the older version into the new Mango file system. Such as MA_HOME/databases.
3. Now start Mango. The modules will be installed and a full upgrade on the database will be performed all at the same time.
NoSQL Database Corruption
Another cause for Mango pausing around the 40% mark is NoSQL database corruption. Occasionally hard shutdowns (e.g. power cycle the computer with Mango still running) can cause the high performance NoSQL database to become corrupt. Mango can usually repair the damage, but it takes time to perform the corruption / repair scan.