Latest doctrine/dbal release could lead to fatal errors

On March 30th, the latest doctrine/dbal version 2.13.0 was released which apparently introduced breaking changes.

When installing OXID eShop the regular way, doctrine/dbal was limited in OXID-eSales/oxideshop_ce only according to the major dependencies (everything bigger v2.5.13 but within v2.x.x is allowed). Additional dependencies have been defined afterwards in OXID-eSales/oxideshop_metapackage_ce. That means, if you entirely refuse the usage of metapackages, you might see the following effects:

Impact

The communication with the database is completely broken, and that’s why you will see maintenance mode in store front as well as in admin panel. Additionally, in our tests, we saw the following error message in the shop’s error log:

OXID Logger.ERROR: Argument 1 passed to OxidEsales\EshopCommunity\Core\Database\Adapter\Doctrine\ResultSet::__construct() must implement interface Doctrine\DBAL\Driver\Statement, instance of Doctrine\DBAL\ForwardCompatibility\Result given, called in /var/www/oxideshop/source/Core/Database/Adapter/Doctrine/Database.php on line 611

Who is affected

  • everybody to refuse the usage of metapackages or
  • everybody who build up their own repositories with component OXID-eSales/oxideshop_ce < 6.7.0

You are save if

  • you use metapackages or
  • use the component OXID-eSales/oxideshop_ce >= 6.7.0 for your own repositories

We fixed this behaviour by limiting doctrine/dbal version to < 2.13.0 in OXID eShop component OXID-eSales/oxideshop_ce v6.7.0, which is used in OXID eShop compilations v6.2.4 and v6.3.0 (to be released soon).

In doubt, you can check doctrine/dbal version simply with composer show doctrine/dbal (or just take a look at your composer.lock file 😉 )



Start the discussion at OXID forums

Prior comments
2 replies

Trackbacks & Pingbacks

  1. […] Please consider reading about this change concerning doctrine/dbal […]

  2. […] Please consider reading about this change concerning doctrine/dbal […]

Leave a Reply

Want to join the discussion?
Feel free to contribute!

Leave a Reply

Your email address will not be published. Required fields are marked *