Am 05.09.2011 11:08, schrieb Stas Malyshev:
Hi!

On 9/5/11 1:24 AM, Andrey Hristov wrote:
the problem is that libmysql breaks, maybe more often than mysqlnd does.
We rarely find bugs in mysqli, there are two codepaths in mysqli. If
there is a bug in libmysql, what do you want:

If we're dealing with libmysql bug, then I guess the expected thing
would be to report it upstream, and make the comment in the test with
bug ID. But in the cases I mentioned it does not look like libmysql bug
as everything works just according to Mysql documentation, however the
tests expect it to work differently.

Stas,

what are we going to do now after the discussion has calmed down a bit?

Any new PHP major release is about setting new directions. I, Andrey and Johannes, the guys maintaining ext/*mysql* recommend going mysqlnd after an "incubation" of some four years (5.3x series + dev time).

You, in your role as 5.4 RM, raised some concerns about changing the default to mysqlnd. Your primary concern is rolling out something that breaks PHP.

As an example, you have listed some mysqli test failures. After the weekend, I'm a lazy bastard refusing to work during weekends, test failures have been commented on:

 - connect_oo_*  - libmysql only, no BC  [1]
 - explain_meta  - libmysql can crash PHP, mysqlnd works [2]
 - stmt_num_rows - differences in undefined behaviour [3]
 - insert_id     - as a bug, it would be bogussed, undefined [4]

Your four examples stand up against, for example, Pierre "Windows" Joye. The php.net windows binaries are using mysqlnd as of PHP 5.3. Windows is probaly the biggest individual distribution. Pierre, who is no MySQL fan boy, reports no BC issues. This is based on multiple years of php.net Windows users feedback and his continous integration testing using "drupal 6&7, wp, oscommerce, mediawiki, sugarcrm, etc." [5]. At least on Windows, users do expect to see mysqlnd meanwhile.

Harald Reindl did the switch from libmysql to mysqlnd on "hundret domains" with "no single problem" [6]. OpenSuSE did the same.

As a manager, you often have to make a decision without knowing all details, without checking everything yourself. You have named and set the #1 risk (BC) and heard people's opinion: mysqlnd is not flawless, but well worth a try.

You also raised the question how or if a change will impact packagers. Tomas Kuliavas gave some great input on this [7]:

 SuSE:
    --with-mysql=shared,mysqlnd

 Debian, Mandriva and Fedora:

   --with-mysql=shared,/usr
   --with-mysqli=shared,/usr/bin/mysql_config'

Looks like packages explicitly set config options. Thus, no break provoked if changing defaults. There's a bit of a buzz on shared builds, Johannes is working on that one - https://bugs.php.net/bug.php?id=55609 .

IMHO all of the relevant concerns have been adressed. No high risks have been found. There is nothing in the way that cannot be tackled down as one moves forward.

I see no reason for ignoring the vote of the maintainers. I fail to understand why PHP @ *nix should not catch up to Windows.

Ulf


[1] http://news.php.net/php.internals/55226
[2] http://news.php.net/php.internals/55221
[3] http://news.php.net/php.internals/55210
[4] http://news.php.net/php.internals/55228
[5] http://news.php.net/php.internals/55177
[6] http://news.php.net/php.internals/55174
[7] http://news.php.net/php.internals/55142

--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to