Bug #64763 [Asn->Opn]: unbuffered queries connection problems are not handled by mysqlnd

From: Date: Tue, 24 Oct 2017 08:03:55 +0000
Subject: Bug #64763 [Asn->Opn]: unbuffered queries connection problems are not handled by mysqlnd
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-212212@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=64763&edit=1

 ID:                 64763
 Updated by:         kalle@php.net
 Reported by:        ihanick at gmail dot com
 Summary:            unbuffered queries connection problems are not
                     handled by mysqlnd
-Status:             Assigned
+Status:             Open
 Type:               Bug
 Package:            MySQL related
 Operating System:   CentOS release 6.4
 PHP Version:        master-Git-2013-05-02 (snap)
-Assigned To:        mysql
+Assigned To:        
 Block user comment: N
 Private report:     N



Previous Comments:
------------------------------------------------------------------------
[2013-05-02 17:31:51] ihanick at gmail dot com

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 this bug report at https://bugs.php.net/bug.php?id=64763&edit=1


Thread (4 messages)

« previous php.bugs (#212212) next »