We receive an PHP error on a productvariantlist after updating to Contao 4.9.24
[2022-01-07 12:34:15] request.CRITICAL: Uncaught PHP Exception Doctrine\DBAL\Exception\DriverException: "An exception occurred while executing 'UPDATE tl_module SET iso_productcache='a:2:{i:0;s:65535:\" ...... \\"a:2:{i:0;s:65535:\\\"a:2:{i:0;s:65535:\\\"a:2:{i:0;s:65535:\\\"a:2:{i:0;s:65535:\\\"a:2:{i:0;s:65535:\\\"a:2:{i:0;s:65535:\\\"a:2:{i:0;s:65535:\\\"a:2:{i:0;s:65535:\\\"a:2:{i:0;s:65535:\\\"a:2:{i:0;s:65535:\\\"a:2:{i:0;s:65535:\\\"a:2:{i:0;s:65535:\\\"a:2:{i:0;s:65535:\\\"a:2:{i:0;s:65535:\\\"a:2:{i:0;s:65535:\\\"a:2:{i:0;s:65535:\\\"a:2:{i:0;s:65535:\\\"a:2:{i:0;s:65535:\\\"a:2:{i:0;s:65535:\\\"a:2:{i:0;s:65535:\\\"a:2:{i:0;s:65535:\\\"a:2:{i:0;s:65535:\\\"a:2:{i:0;s:65535:\\\"a:2:{i:0;s:65535:\\\"a:2:{i:0;s:65535:\\\"a:2:{i:0;s:65535:\\\"a:2:{i:0;s:65535:\\\"a:2:{i:0;s:65535:\\\"a:2:{i:0;s:65535:\\\"a:2:{i:0;s:65535:\\\"a:2:{i:0;s:65535:\\\"a:2:{i:0;s:65535:\\\"a:2:{i:0;s:65535:\\\"a:2:{i:0;s:65535:\\\"a:2:{i:0;s:65535:\\\"a:2:{i:0;s:65535:\\\"a:2:{i:0;s:65535:\\\"a:2:{i:0;s:65535:\\\"a:2:{i:0;s:65535:\\\"a:2:{i:0;s:65535:\\\"a:2:{i:0;s:6553\\\";s:32:\\\"a2e2ae67dfd306ba912fdc0d7e900555\\\";b:1;}' WHERE id='615'':\n\nSQLSTATE[22001]: String data, right truncated: 1406 Data too long for column 'iso_productcache' at row 1 at /XX/contao49/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractMySQLDriver.php:128, Doctrine\\DBAL\\Driver\\PDO\\Exception(code: 22001): SQLSTATE[22001]: String data, right truncated: 1406 Data too long for column 'iso_productcache' at row 1 at /XX/contao49/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDO/Exception.php:18, PDOException(code: 22001): SQLSTATE[22001]: String data, right truncated: 1406 Data too long for column 'iso_productcache' at row 1 at /XX/contao49/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php:141)"} []
Strange notice here:
It is working when debugger is active.
Some Debugging hours later...:
The column iso_productcache in the tl_module table was 64kb large with the blog entries above {i:0;s:65535:\"a:2:{i:0;s:65535:\\
So we purged all iso_productcache columns in the variantlist modules. After that, the columns were filled correctly.
After purging the main tl_iso_productcache table these module columns were still filled with the former entries.
Aren't the tl_module.iso_productcache columns supposed to purge, too when purging the tl_productlist table?
Otherwise they will grow until they reach 64kb.
We receive an PHP error on a productvariantlist after updating to Contao 4.9.24
[2022-01-07 12:34:15] request.CRITICAL: Uncaught PHP Exception Doctrine\DBAL\Exception\DriverException: "An exception occurred while executing 'UPDATE tl_module SET iso_productcache='a:2:{i:0;s:65535:\" ...... \\"a:2:{i:0;s:65535:\\\"a:2:{i:0;s:65535:\\\"a:2:{i:0;s:65535:\\\"a:2:{i:0;s:65535:\\\"a:2:{i:0;s:65535:\\\"a:2:{i:0;s:65535:\\\"a:2:{i:0;s:65535:\\\"a:2:{i:0;s:65535:\\\"a:2:{i:0;s:65535:\\\"a:2:{i:0;s:65535:\\\"a:2:{i:0;s:65535:\\\"a:2:{i:0;s:65535:\\\"a:2:{i:0;s:65535:\\\"a:2:{i:0;s:65535:\\\"a:2:{i:0;s:65535:\\\"a:2:{i:0;s:65535:\\\"a:2:{i:0;s:65535:\\\"a:2:{i:0;s:65535:\\\"a:2:{i:0;s:65535:\\\"a:2:{i:0;s:65535:\\\"a:2:{i:0;s:65535:\\\"a:2:{i:0;s:65535:\\\"a:2:{i:0;s:65535:\\\"a:2:{i:0;s:65535:\\\"a:2:{i:0;s:65535:\\\"a:2:{i:0;s:65535:\\\"a:2:{i:0;s:65535:\\\"a:2:{i:0;s:65535:\\\"a:2:{i:0;s:65535:\\\"a:2:{i:0;s:65535:\\\"a:2:{i:0;s:65535:\\\"a:2:{i:0;s:65535:\\\"a:2:{i:0;s:65535:\\\"a:2:{i:0;s:65535:\\\"a:2:{i:0;s:65535:\\\"a:2:{i:0;s:65535:\\\"a:2:{i:0;s:65535:\\\"a:2:{i:0;s:65535:\\\"a:2:{i:0;s:65535:\\\"a:2:{i:0;s:65535:\\\"a:2:{i:0;s:6553\\\";s:32:\\\"a2e2ae67dfd306ba912fdc0d7e900555\\\";b:1;}' WHERE id='615'':\n\nSQLSTATE[22001]: String data, right truncated: 1406 Data too long for column 'iso_productcache' at row 1 at /XX/contao49/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractMySQLDriver.php:128, Doctrine\\DBAL\\Driver\\PDO\\Exception(code: 22001): SQLSTATE[22001]: String data, right truncated: 1406 Data too long for column 'iso_productcache' at row 1 at /XX/contao49/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDO/Exception.php:18, PDOException(code: 22001): SQLSTATE[22001]: String data, right truncated: 1406 Data too long for column 'iso_productcache' at row 1 at /XX/contao49/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php:141)"} []Strange notice here:
It is working when debugger is active.
Some Debugging hours later...:
The column iso_productcache in the tl_module table was 64kb large with the blog entries above {i:0;s:65535:\"a:2:{i:0;s:65535:\\
So we purged all iso_productcache columns in the variantlist modules. After that, the columns were filled correctly.
After purging the main tl_iso_productcache table these module columns were still filled with the former entries.
Aren't the tl_module.iso_productcache columns supposed to purge, too when purging the tl_productlist table?
Otherwise they will grow until they reach 64kb.