Re: [PHP-DEV] [RFC] [Discussion] Minimum supported versions for PHP 8.6
On Fri, Jul 3, 2026 at 7:32 AM wrote:
>
> > 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
> $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).
Thank you for identifying a connection leak; I have identified the
cause and I'm considering how to address it. That said, I don't
believe this is inherent to the RFC, instead I would consider this a
bug in my implementation.
Re: [PHP-DEV] [RFC] [Discussion] Minimum supported versions for PHP 8.6
> 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
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).
Re: [PHP-DEV] [RFC] [Discussion] Minimum supported versions for PHP 8.6
Hi Am 2026-07-02 17:48, schrieb Eric Norris: Thank you, I've both added you as an author and included your suggested changes, with slight edits. Thank you. No further remarks from my side. Best regards Tim Düsterhus
Re: [PHP-DEV] [RFC] [Discussion] Minimum supported versions for PHP 8.6
On Thu, Jul 2, 2026 at 11:42 AM wrote: > > > Users that are on MySQL or MariaDB databases from before this feature was > > implemented may upgrade to PHP 8.6, but would not be able to use persistent > > connections. This means that their software could continue to work, but > > they might lose a performance optimization. > > Please clarify this. > Users on older mysql will hit connection error immediately after > upgrading to 8.6. So saying "their software could continue to work" is > misleading. Their PHP code must be modified before upgrading - turning > PDO::ATTR_PERSISTENT to false or removing it entirely. And only after > that it would continue to work. Is this true? Having looked at the persistent connection code, I believe it would silently handle the error by simply discarding the connection and creating a new one. Thus, "their software could continue to work, but they might lose a performance optimization." Source: https://github.com/php/php-src/pull/21857/files#diff-9a6d6a4359a98668fef29400492f877938424d1b1d2e84933c91ab34161cf360R417-R428
Re: [PHP-DEV] [RFC] [Discussion] Minimum supported versions for PHP 8.6
On Thu, Jul 2, 2026 at 11:09 AM Tim Düsterhus wrote: > > Hi > > Am 2026-07-02 16:53, schrieb Eric Norris: > > (Tim, I've not added you as an author since I wasn't sure you'd be > > cool with that, but if you'd like I would be more than happy to.) > > I'm okay with that. > > -- > > And with regard to the RFC itself: Leaving the “Open Issues” and “Future > Scope” sections empty looks weird. I suggest to either remove them > completely or insert an explicit “None” or so. The same is true for the > SAPI impact. The changelog could just be an "- 2026-07-02: Initial > version" and then "- 2026-07-02: Clarify impact" (see below). > > The “References” section should ideally include links to the Pre-RFC > discussion thread and must include a link to this discussion. For your > convenience: https://news-web.php.net/php.internals/131707 + > https://news-web.php.net/php.internals/130704). > > An “ecosystem impact” of “None” is also almost always wrong. I would > mention the following (perhaps with a little nicer phrasing). > > - For COM_RESET_CONNECTION: The proper reset on persistent connections > has the (positive) impact that the behavior of persistent connections > will be more predictable. Of course if folks rely on some connection > state carrying over across requests, they might see a breaking change. > - Users that want to use the newest PHP version will be required to also > run newer versions (released in the last 5 years) of other software. > > Best regards > Tim Düsterhus Thank you, I've both added you as an author and included your suggested changes, with slight edits.
Re: [PHP-DEV] [RFC] [Discussion] Minimum supported versions for PHP 8.6
> Users that are on MySQL or MariaDB databases from before this feature was > implemented may upgrade to PHP 8.6, but would not be able to use persistent > connections. This means that their software could continue to work, but they > might lose a performance optimization. Please clarify this. Users on older mysql will hit connection error immediately after upgrading to 8.6. So saying "their software could continue to work" is misleading. Their PHP code must be modified before upgrading - turning PDO::ATTR_PERSISTENT to false or removing it entirely. And only after that it would continue to work.
Re: [PHP-DEV] [RFC] [Discussion] Minimum supported versions for PHP 8.6
Hi Am 2026-07-02 16:53, schrieb Eric Norris: (Tim, I've not added you as an author since I wasn't sure you'd be cool with that, but if you'd like I would be more than happy to.) I'm okay with that. -- And with regard to the RFC itself: Leaving the “Open Issues” and “Future Scope” sections empty looks weird. I suggest to either remove them completely or insert an explicit “None” or so. The same is true for the SAPI impact. The changelog could just be an "- 2026-07-02: Initial version" and then "- 2026-07-02: Clarify impact" (see below). The “References” section should ideally include links to the Pre-RFC discussion thread and must include a link to this discussion. For your convenience: https://news-web.php.net/php.internals/131707 + https://news-web.php.net/php.internals/130704). An “ecosystem impact” of “None” is also almost always wrong. I would mention the following (perhaps with a little nicer phrasing). - For COM_RESET_CONNECTION: The proper reset on persistent connections has the (positive) impact that the behavior of persistent connections will be more predictable. Of course if folks rely on some connection state carrying over across requests, they might see a breaking change. - Users that want to use the newest PHP version will be required to also run newer versions (released in the last 5 years) of other software. Best regards Tim Düsterhus
