From:             ihanick at gmail dot com
Operating system: CentOS release 6.4
PHP version:      master-Git-2013-05-02 (snap)
Package:          MySQL related
Bug Type:         Bug
Bug description:unbuffered queries connection problems are not handled by 
mysqlnd

Description:
------------
Partially finished unbuffered query for mysql doesn't return any errors.
The problem persists for all current versions of mysqlnd but everything
find with 
old libmysqlclient code for all mysql extensions: mysql, mysqli,
pdo-mysql.

If I have 100k rows in query and connection dropped at 50k point, there is
no 
simple way to see this error in application and handle the problem.

Test script:
---------------
1) create a big table to have several seconds for select * from table
execution time
2) run php script
3) kill connection from php to mysql or kill mysqld

<?php
error_reporting(E_ALL);
$link = mysql_connect('localhost', 'root', '');
mysql_select_db('test') or die('Could not select database');

// Performing SQL query
$query = 'SELECT * FROM x;';
$result = mysql_unbuffered_query($query) or die('Query failed: ' .
mysql_error());

while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
}

echo mysql_error($link) . PHP_EOL;

Expected result:
----------------
Warning about connection problems and
mysql_error should return Query failed: MySQL server has gone away

Everything works correctly for old (non-mysqlnd) extension.

Actual result:
--------------
getting warning:
Warning: Empty row packet body in /root/php5-trunk/test.php on line 10

But empty result for mysql_error($link)



-- 
Edit bug report at https://bugs.php.net/bug.php?id=64763&edit=1
-- 
Try a snapshot (PHP 5.4):   
https://bugs.php.net/fix.php?id=64763&r=trysnapshot54
Try a snapshot (PHP 5.3):   
https://bugs.php.net/fix.php?id=64763&r=trysnapshot53
Try a snapshot (trunk):     
https://bugs.php.net/fix.php?id=64763&r=trysnapshottrunk
Fixed in SVN:               https://bugs.php.net/fix.php?id=64763&r=fixed
Fixed in release:           https://bugs.php.net/fix.php?id=64763&r=alreadyfixed
Need backtrace:             https://bugs.php.net/fix.php?id=64763&r=needtrace
Need Reproduce Script:      https://bugs.php.net/fix.php?id=64763&r=needscript
Try newer version:          https://bugs.php.net/fix.php?id=64763&r=oldversion
Not developer issue:        https://bugs.php.net/fix.php?id=64763&r=support
Expected behavior:          https://bugs.php.net/fix.php?id=64763&r=notwrong
Not enough info:            
https://bugs.php.net/fix.php?id=64763&r=notenoughinfo
Submitted twice:            
https://bugs.php.net/fix.php?id=64763&r=submittedtwice
register_globals:           https://bugs.php.net/fix.php?id=64763&r=globals
PHP 4 support discontinued: https://bugs.php.net/fix.php?id=64763&r=php4
Daylight Savings:           https://bugs.php.net/fix.php?id=64763&r=dst
IIS Stability:              https://bugs.php.net/fix.php?id=64763&r=isapi
Install GNU Sed:            https://bugs.php.net/fix.php?id=64763&r=gnused
Floating point limitations: https://bugs.php.net/fix.php?id=64763&r=float
No Zend Extensions:         https://bugs.php.net/fix.php?id=64763&r=nozend
MySQL Configuration Error:  https://bugs.php.net/fix.php?id=64763&r=mysqlcfg

Reply via email to