magento2: Magento 2.0.4 DI Compilation Breaks CLI Tool

Steps to reproduce

  1. Install Magento 2.0.4 from composer packages
  2. Change application mode to: production
  3. Run bin/magento setup:di:compile-multi-tenant
  4. Attempt using the bin/magento tool

Failure encountered

Any attempt to run bin/magento fails until one manually removes the var/di/relations.ser file generated by the compile-multi-tenant process:

PHP Fatal error:  Uncaught Error: Cannot instantiate interface Magento\Framework\Filesystem\DriverInterface in /var/www/magento2/vendor/magento/framework/ObjectManager/Factory/Dynamic/Developer.php:73
Stack trace:
#0 /var/www/magento2/vendor/magento/framework/ObjectManager/ObjectManager.php(71): Magento\Framework\ObjectManager\Factory\Dynamic\Developer->create('Magento\\Framewo...')
#1 /var/www/magento2/vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php(236): Magento\Framework\ObjectManager\ObjectManager->get('Magento\\Framewo...')
#2 /var/www/magento2/vendor/magento/framework/ObjectManager/Factory/Dynamic/Developer.php(53): Magento\Framework\ObjectManager\Factory\AbstractFactory->resolveArgument(Array, 'Magento\\Framewo...', NULL, 'filesystem', 'Magento\\Framewo...')
#3 /var/www/magento2/vendor/magento/framework/ObjectManager/Factory/Dynamic/Developer.php(82): Magento\Framework\ObjectManager\Factory\Dynamic\Developer->_resolveArguments('Magento\\Framewo...', Array, Array)
#4 /var/www/magento2/vendor/magento/fr in /var/www/magento2/vendor/magento/framework/ObjectManager/Factory/Dynamic/Developer.php on line 73

Detailed example

root@m2demo:10:00 AM:/var/www/magento2$ bin/magento | head -n1
Magento CLI version 2.0.4
root@m2demo:10:00 AM:/var/www/magento2$ bin/magento setup:di:compile-multi-tenant | sed 's/^.*$//' | tr "\n" . && echo
...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
root@m2demo:10:01 AM:/var/www/magento2$ bin/magento
PHP Fatal error:  Uncaught Error: Cannot instantiate interface Magento\Framework\Filesystem\DriverInterface in /var/www/magento2/vendor/magento/framework/ObjectManager/Factory/Dynamic/Developer.php:73
Stack trace:
#0 /var/www/magento2/vendor/magento/framework/ObjectManager/ObjectManager.php(71): Magento\Framework\ObjectManager\Factory\Dynamic\Developer->create('Magento\\Framewo...')
#1 /var/www/magento2/vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php(236): Magento\Framework\ObjectManager\ObjectManager->get('Magento\\Framewo...')
#2 /var/www/magento2/vendor/magento/framework/ObjectManager/Factory/Dynamic/Developer.php(53): Magento\Framework\ObjectManager\Factory\AbstractFactory->resolveArgument(Array, 'Magento\\Framewo...', NULL, 'filesystem', 'Magento\\Framewo...')
#3 /var/www/magento2/vendor/magento/framework/ObjectManager/Factory/Dynamic/Developer.php(82): Magento\Framework\ObjectManager\Factory\Dynamic\Developer->_resolveArguments('Magento\\Framewo...', Array, Array)
#4 /var/www/magento2/vendor/magento/fr in /var/www/magento2/vendor/magento/framework/ObjectManager/Factory/Dynamic/Developer.php on line 73
root@m2demo:10:02 AM:/var/www/magento2$ ls -1 var/di
plugins.ser
relations.ser
root@m2demo:10:02 AM:/var/www/magento2$ rm -f var/di/relations.ser 
root@m2demo:10:02 AM:/var/www/magento2$ bin/magento | head -n1
Magento CLI version 2.0.4
root@m2demo:10:02 AM:/var/www/magento2$ bin/magento deploy:mode:show
Current application mode: production.
root@m2demo:10:02 AM:/var/www/magento2$

About this issue

  • Original URL
  • State: closed
  • Created 8 years ago
  • Reactions: 3
  • Comments: 19 (12 by maintainers)

Commits related to this issue

Most upvoted comments

Thanks! I will escalate internally.

The igbinary implementation breaks as well on 7.0.x

Same here on php7.0.5 using either multi/single tenant more details here

Complemental Information:

  • If you look at var/di/relations.ser you will find an empty serialized string {}
  • and the compile process stops at Marketplace module.

@degaray The only workaround would be to remove the var/di/relations.ser file after the failed compilation so that the app continues to run. Obviously not a long-term solution since that is effectively nullifying the meta-data caching intended to speed up performance.