Re: [PHP-DEV] [RFC] [Discussion] Minimum supported versions for PHP 8.6

2026-07-03 Thread Eric Norris
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

2026-07-03 Thread go . al . ni
> 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

2026-07-02 Thread Tim Düsterhus

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

2026-07-02 Thread Eric Norris
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

2026-07-02 Thread Eric Norris
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

2026-07-02 Thread go . al . ni
> 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

2026-07-02 Thread Tim Düsterhus

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