TRAFEX TRAFEX Consultancy Consultancy

PHP 5.5.13 breaks backwards compatibility

June 17, 2014

There’s a backwards compatibility break in PHP 5.5.13 (and PHP 5.4.29) affecting PHPUnit, Mockery, Doctrine, Symfony and probably a lot more.

Rafael Dohms triggered me with this Tweet;

And I also ran into the issues with Mockery/PHPUnit;

Failed asserting that exception of type "PHPUnit_Framework_Error_Warning" matches expected exception "SymfonyComponentHttpKernelExceptionNotFoundHttpException". 
Message was: "Erroneous data format for unserializing 'Mockery_9_Symfony_Component_HttpFoundation_File_UploadedFile'".

I found the following sources that explain what happened:

It’s advisable to not upgrade to PHP5.5.13 but wait for PHP5.5.14, it should be released soon.

Update June 19

PHP.net answered my question when 5.5.14 gets released;

Update June 29

The good news: PHP5.5.14 is released with the following note:

Please, note that this release also fixes a backward compatibility issue that has been detected in the PHP 5.5.13 release. Still, the fix in PHP 5.5.14 may break some very rare situations. As this tiny compatibility break involves security, and as security is our primary concern, we had to fix it. This concerns bug 67072. For more information about this bug and its actual resolution, please visit our upgrading guide. We apologize for any inconvenience you may have experienced with this behavior.

The bad news: It doesn’t fix the ‘Erroneous data format’ error!
I guess we’ll have to wait another month for the next release.

Update September 24

To wrap-up this post; I’m currently running PHP5.5.17 and the errors are gone! Hurray!

Go back

Recent articles

Articles

Checklist: Prepare your website for Go Live

When you’re ready to launch your website or web application, you can use this checklist to be fully prepared for the Go Live and have a smooth transition!

Read More

Articles

The key components of Kubernetes autoscaling

Autoscaling is an important feature of Kubernetes. With this feature you always have enough resources for the workload, and when a node becomes unhealthy it gets replaced without effecting the workload. But you won’t get it automatically by just deploying your Pods on Kubernetes.

Read More

Articles

Create a DB backup from a pod running MySQL on Kubernetes

When using the MySQL docker image you can easily create a DB dump with this one-line CLI command.

Read More