> Is this true?

It's not true. Sorry about that. Script didn't crash.

But something worse happened.

I took sources from
https://github.com/ericnorris/php-src/archive/refs/heads/feat-mysqlnd-com-reset-connection.zip
Configured them with `--enable-mysqlnd --enable-fpm
--with-fpm-user=www-data --with-fpm-group=www-data --enable-pdo
--with-pdo-mysql=mysqlnd`
Up mysql 5.5.61.
Started php-fpm with `pm = static` and `pm.max_children = 1`.
Ran this script:

```php
<?php
$pdo = new PDO('mysql:host=172.17.0.1', 'root', '',
[PDO::ATTR_PERSISTENT => true]);
$q = $pdo->query('SHOW PROCESSLIST');
$rows = 0;
while ($f = $q->fetch(PDO::FETCH_ASSOC)) {
  $rows++;
}
echo $rows . PHP_EOL;
```

On the first execution script echoes 1. On the second - 2. Each
execution increments the counter by one. When I restart the php-fpm
process, the counter restarts again from 1. There is connection leak
here!

When I removed `PDO::ATTR_PERSISTENT`, the counter stop increasing.
When I switched to mysql 8, counter was always 1 (both with and
without persistent connections).

Reply via email to