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