On 21.09.2016 19:39, Fleshgrinder wrote:
On 9/21/2016 8:42 AM, Andrey Hristov wrote:
On 20.09.2016 21:02, Fleshgrinder wrote:
I am writing you because you are the last person with actual commits in
the mysqlnd extension. I would like to ask if you could have a look at
the following bug:
This is a real problem for very long running queries and should
definitely be fixed.
Note that the patch from the actual bug report seems like the right fix
and not the changes from the GitHub PR.
Looking forward to your feedback, best regards
is it possible to wait until mid next week? I will try to reproduce it
(I think a SELECT SLEEP(1000); will do the job too, and doesn't need
fast reaction on the terminal :)).
of course, of course. I only wrote you because it is seldom that there
is feedback and this really needs fixing but if its today or next week
shouldn't matter as long as it lands in one of the next releases.
We reproduced it by an unbuffered query that selects a hug amount of
data from the database and simply dropped the connection on the server
side. However, it is not 100% reproducable in such cases. Sometimes
absolutely nothing happens and PHP just ends the loop. Sometimes the
warning from the PR appears. Sometimes a sleep in PHP after the loop
over the unbuffered result set followed by a status call to the server
reveals the actual error. It's weird and definitely requires more
attention and we will continue to find better test cases.
I'll talk to my friends on how to come up with a good test case that
makes it reproducible in our automated tests in php-src.
this will be really nice. Have you tried with SELECT SLEEP(1000) or
SELECT a FROM b UNION SELECT SLEEP(20)? And maybe mysqli_query with
ASYNC and mysqli_poll can be used to be able to kill first connection
from a second one, while the first does the long running query. Maybe
the problem will manifest itself also in this case. In any case, I will
need to reread mysqlnd's code to analyze it in my head where this comes
from. But as I said, I need a bit of time.
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php