List:Commits« Previous MessageNext Message »
From:Davi Arnaut Date:December 26 2008 1:02pm
Subject:Re: bzr commit into mysql-5.1-bugteam branch (Sergey.Glukhov:2754)
Bug#41441
View as plain text  
Hi Sergey,

OK to push. Minor comments below.

On 12/26/08 9:36 AM, Sergey Glukhov wrote:
> #At file:///home/gluh/MySQL/mysql-5.1-bug-41441/ based on
> revid:sergey.glukhov@stripped
>
>   2754 Sergey Glukhov	2008-12-26
>        Bug#41441 repair csv table crashes debug server(for 5.1 only)
>        The problem: data file can not be deleted on win because
>        there is another opened instance of this file.
>        Data file might be opened twice, on table opening stage and
>        during write_row execution. We need to close both instances
>        to satisfy Win. The fix is only for 5.1, In 6.0 we have
>        naitive win set of functions, so the fix will be different
>        there.
> modified:
>    mysql-test/r/csv.result
>    mysql-test/t/csv.test
>    storage/csv/ha_tina.cc
>
> per-file messages:
>    mysql-test/r/csv.result
>      test result
>    mysql-test/t/csv.test
>      test case
>    storage/csv/ha_tina.cc
>      The problem: data file can not be deleted on win because
>      there is another opened instance of this file.
>      Data file might be opened twice, on table opening stage and
>      during write_row execution. We need to close both instances
>      to satisfy Win. The fix is only for 5.1, In 6.0 we have
>      naitive win set of functions, so the fix will be different

naitive -> native

>      there.
> === modified file 'mysql-test/r/csv.result'
> --- a/mysql-test/r/csv.result	2008-12-10 09:05:18 +0000
> +++ b/mysql-test/r/csv.result	2008-12-26 11:34:20 +0000
> @@ -5394,4 +5394,17 @@ select * from t1;
>   ERROR HY000: File './test/t1.CSV' not found (Errcode: 2)
>   unlock tables;
>   drop table t1;
> +create table t1(a enum ('a') not null) engine=csv;
> +insert into t1 values (2);
> +Warnings:
> +Warning	1265	Data truncated for column 'a' at row 1
> +select * from t1 limit 1;
> +ERROR HY000: Table 't1' is marked as crashed and should be repaired
> +repair table t1;
> +Table	Op	Msg_type	Msg_text
> +test.t1	repair	Warning	Data truncated for column 'a' at row 1
> +test.t1	repair	status	OK
> +select * from t1 limit 1;
> +a
> +drop table t1;
>   End of 5.1 tests
>
> === modified file 'mysql-test/t/csv.test'
> --- a/mysql-test/t/csv.test	2008-12-10 09:05:18 +0000
> +++ b/mysql-test/t/csv.test	2008-12-26 11:34:20 +0000
> @@ -1804,4 +1804,17 @@ unlock tables;
>   drop table t1;
>   --disconnect con1
>
> +#
> +# Bug#41441 repair csv table crashes debug server
> +#
> +# Note: The test should be removed after Bug#33717 is fixed
> +
> +create table t1(a enum ('a') not null) engine=csv;
> +insert into t1 values (2);
> +--error 1194

s/1194/ER_CRASHED_ON_USAGE/

> +select * from t1 limit 1;
> +repair table t1;
> +select * from t1 limit 1;
> +drop table t1;
> +
>   --echo End of 5.1 tests
>
> === modified file 'storage/csv/ha_tina.cc'
> --- a/storage/csv/ha_tina.cc	2008-12-10 09:05:18 +0000
> +++ b/storage/csv/ha_tina.cc	2008-12-26 11:34:20 +0000
> @@ -1439,6 +1439,17 @@ int ha_tina::repair(THD* thd, HA_CHECK_O
>       a file, which descriptor is still open. EACCES will be returned
>       when trying to delete the "to"-file in my_rename().
>     */
> +  if (share->tina_write_opened)
> +  {
> +    /*
> +      Data file might be opened twice, on table opening stage and
> +      during write_row execution. We need to close both instances
> +      to satisfy Win.
> +    */
> +    if(my_close(share->tina_write_filedes, MYF(0)))

Add space after the "if".

> +      DBUG_RETURN(my_errno ? my_errno : -1);
> +    share->tina_write_opened= FALSE;
> +  }

-- Davi
Thread
bzr commit into mysql-5.1-bugteam branch (Sergey.Glukhov:2754)Bug#41441Sergey Glukhov26 Dec
  • Re: bzr commit into mysql-5.1-bugteam branch (Sergey.Glukhov:2754)Bug#41441Davi Arnaut26 Dec