I use doctrine 2 PDO with mysql.
When stress testing the server, mysql reports a lot of aborted connections (up-to 20%).
I am trying to locate the issue.
Mysql manual suggests to ensure that connections to the database are closed properly. http://dev.mysql.com/doc/refman/5.0/en/communication-errors.html
I can't find any information if doctrine actually closes connections or not, or uses persistent connections.
Also, is there anything else that can account for aborted connections? I am at loss here.
PS. Server is ubuntu 10.04, nginx 1.x, php 5.3.5 (fpm) and mysql 5.1.41
I have found this tweak:
https://sroze.io/phpunit-mysql-too-many-connections-error-ab52cd5798c5
Setting
processIsolation="true"
option in PhpUnit XML options file seems to do the trick.I have the same problem and
seems to work, but works 'better' in some php versions if you add
after closing connections. I'm still having that kind of issues in older php version, may be something related with the garbage collector I guess. Will keep you updated if I find a final solution for all php versions
From what I've observed, Doctrine uses persistent connections.
We've stumbled upon a problem, launching unit tests in symfony2, where the database was spammed with connections in "Sleep" status. The solution that worked for us: