Hi, horst
It would be great also to remove the timeout from the test.
We should proceed only and only if the number of connections is equal to 1.
If this never happens MTR will eventually kill the test.
What do you think?
I will be online later tonight to review the patch if you need.
Cheers.
horst hunger wrote:
> Hi Rafal,
> alright. Good, that you don't agree. I have another idea, that may fix
> the bug: I wait until the preceding disconnects will be ready. That
> may guarantee that alway the expected 9 queries will be executed
> (without a quit in between, that is cause due to the parallel
> execution of sessions).
> The poposed fix will follow (hopefully) this evening.
> Thanks
> Horst
> Rafal Somla schrieb:
>> Hi Horst,
>>
>> Your solution is based on the assumption that the wrong count (10
>> instead of 9) is caused by extra "Quit" query being counted in. But
>> I'm not totally convinced by this. Looking at the relevant place in
>> the test this is what happens there:
>>
>> ...
>> let $org_queries= `SHOW STATUS LIKE 'Queries'`;
>> SELECT f1();
>> CALL p1();
>> let $new_queries= `SHOW STATUS LIKE 'Queries'`;
>> --disable_log
>> let $diff= `SELECT
>> SUBSTRING('$new_queries',9)-SUBSTRING('$org_queries',9)`;
>> --enable_log
>> eval SELECT $diff;
>> disconnect con1;
>> ...
>>
>> Thus the test assumes that calling f1() and p1() results in 9 queries
>> being executed. How come that "Quit" is also executed? Note that the
>> connection is disconnected *after* getting the $new_queries number.
>>
>> Hence I'm afraid that your patch can hide a real problem we have
>> here. What do you say?
>>
>> Rafal
>>
>> Horst Hunger wrote:
>>> #At file:///work/bzr/mysql-6.0-39937/
>>>
>>> 3007 Horst Hunger 2009-02-03
>>> Fix for bug#39937: Set the disconnect_timeout to 30 seconds to
>>> have more time in case of lower performance and specified a weaker
>>> condition as sometime also a "Quit" is counted as query.
>>> modified:
>>> mysql-test/r/status.result
>>> mysql-test/t/status.test
>>>
>>> === modified file 'mysql-test/r/status.result'
>>> --- a/mysql-test/r/status.result 2009-01-30 14:13:39 +0000
>>> +++ b/mysql-test/r/status.result 2009-02-03 13:30:23 +0000
>>> @@ -231,9 +231,9 @@ f1()
>>> CALL p1();
>>> 1
>>> 1
>>> -SELECT 9;
>>> -9
>>> -9
>>> +SELECT 9 BETWEEN 9 AND 10;
>>> +9 BETWEEN 9 AND 10
>>> +1
>>> DROP PROCEDURE p1;
>>> DROP FUNCTION f1;
>>> DROP VIEW IF EXISTS v1;
>>>
>>> === modified file 'mysql-test/t/status.test'
>>> --- a/mysql-test/t/status.test 2009-01-30 14:13:39 +0000
>>> +++ b/mysql-test/t/status.test 2009-02-03 13:30:23 +0000
>>> @@ -103,7 +103,7 @@ drop table t1;
>>> #
>>>
>>> # Wait for at most $disconnect_timeout seconds for disconnects to
>>> finish.
>>> -let $disconnect_timeout = 10;
>>> +let $disconnect_timeout = 30;
>>>
>>> # Wait for any previous disconnects to finish.
>>> FLUSH STATUS;
>>> @@ -327,7 +327,8 @@ let $new_queries= `SHOW STATUS LIKE 'Que
>>> --disable_query_log
>>> let $diff= `SELECT
>>> SUBSTRING('$new_queries',9)-SUBSTRING('$org_queries',9)`;
>>> --enable_query_log
>>> -eval SELECT $diff;
>>> +# The number of queries must at least be 9, but ometimes a "Quit"
>>> is also counted.
>>> +eval SELECT $diff BETWEEN 9 AND 10;
>>> disconnect con1;
>>> connection default;
>>> DROP PROCEDURE p1;
>>>
>>>
>
>