The upgrade process might fail due to objective reasons. Below you can find the detailed description of each possible case.
Insufficient File System Permissions
Magento Connect requires writing permissions to Magento files in order to install new extensions or to upgrade an existing extension to the latest version. If Extension is installed and then the permissions on a file system are changed (i.e. from ‘write’ to ‘read’), Magento Connect Manager will fail to copy latest files from an archived package to Magento Installation folder.
Configuration parameters such as ‘max_execution_time’, ‘memory_limit’ or ‘mysql config parameters’ for both PHP and MySQL may have a negative impact not only on the synchronization process but also on the upgrade process.
Failed previous upgrades
Consider the following scenario: a previous upgrade failed, a database schema was not updated properly ( i.e. some columns were not added to the tables), but the system continued to function properly. If some modifications are made to that columns during the fresh upgrade, the upgrade script will fail.
Magento or 3rd Party cache ( i.e. Memcached, Redis, ACL)
After the Module is updated via Magento Connect Manager, it may have an ‘old codebase’ in conjunction with an updated database schema in some cases. As a result, the old cached files can be used by Magento cache or any other cache engine.
Magento Connect Manager conflicts with PHP version 5.4 or higher
The problem is related to the compatibility problem of Magento Connect Manager and PHP version greater than 5.3.x. due to the changes in PHP 5.4+ for in its function unpack (http://php.net/unpack).
Magento Connect Manager script fails long paths (more than 100 characters, see the typical error below) on PHP 5.4 and higher because a function default behavior had been changed and led to an unexpected result.
M2E Pro Team has reported this issue to Magento Team with the resolution to follow. However, at this moment, the only solution is to upgrade M2E Pro extension manually.