List:Commits« Previous MessageNext Message »
From:Andrei Elkin Date:October 2 2008 1:53pm
Subject:Re: bzr commit into mysql-6.0-falcon-team branch (svoj:2842) Bug#12713, Bug#34892
View as plain text  
Sergey, hello.

I find this patch as good, even better than good because it leaves
less tempation for refactring when unlock_tables and rollback are
places at one spot.

Could you please verfify how the dup-key failing create-select for
innodb table is processed.
On my system there was a problem, which I mentioned to you, that the new
table's innodb internal object was not really released:

InnoDB: Warning: MySQL is trying to drop table `test`.`tu`
InnoDB: though there are still open handles to it.
InnoDB: Adding the table to the background drop queue.

Does it happen on your system with and without your patch?

Thanks!

Andrei

> #At file:///home/svoj/devel/bzr-mysql/mysql-6.0-falcon-team-bug34892/
>
>  2842 Sergey Vojtovich	2008-10-02
>       BUG#34892 - Transaction handling in select_create::abort let's Falcon fail
>       
>       CREATE ... SELECT that fails (e.g. due to duplicate key) with
>       Falcon storage engine prevents to create or drop a table with
>       the same name in future.
>       
>       Added missing trans_rollback_stmt(), which was removed by accident by
>       patch for BUG#12713.
> renamed:
>   mysql-test/suite/falcon_team/r/falcon_bug_23945.result =>
> mysql-test/suite/falcon/r/falcon_bug_23945.result
>   mysql-test/suite/falcon_team/r/falcon_bug_34892.result =>
> mysql-test/suite/falcon/r/falcon_bug_34892.result
>   mysql-test/suite/falcon_team/t/falcon_bug_23945.test =>
> mysql-test/suite/falcon/t/falcon_bug_23945.test
>   mysql-test/suite/falcon_team/t/falcon_bug_34892.test =>
> mysql-test/suite/falcon/t/falcon_bug_34892.test
> modified:
>   mysql-test/suite/falcon_team/t/disabled.def
>   mysql-test/suite/falcon_team/t/test2bug.def
>   sql/sql_insert.cc
>   mysql-test/suite/falcon/r/falcon_bug_23945.result
>   mysql-test/suite/falcon/t/falcon_bug_23945.test
>
> per-file messages:
>   mysql-test/suite/falcon/r/falcon_bug_23945.result
>     Re-enabled a test case.
>   mysql-test/suite/falcon/r/falcon_bug_34892.result
>     Re-enabled a test case.
>   mysql-test/suite/falcon/t/falcon_bug_23945.test
>     Re-enabled a test case.
>   mysql-test/suite/falcon/t/falcon_bug_34892.test
>     Re-enabled a test case.
>   mysql-test/suite/falcon_team/t/disabled.def
>     Re-enabled a test case.
>   mysql-test/suite/falcon_team/t/test2bug.def
>     Re-enabled a test case.
>   sql/sql_insert.cc
>     Added missing trans_rollback_stmt(), which was removed by accident by
>     patch for BUG#12713.
> === renamed file 'mysql-test/suite/falcon_team/r/falcon_bug_23945.result' =>
> 'mysql-test/suite/falcon/r/falcon_bug_23945.result'
> --- a/mysql-test/suite/falcon_team/r/falcon_bug_23945.result	2008-09-09 08:30:18
> +0000
> +++ b/mysql-test/suite/falcon/r/falcon_bug_23945.result	2008-10-02 10:37:27 +0000
> @@ -15,3 +15,5 @@ SELECT * FROM t1;
>  ERROR 42S02: Table 'test.t1' doesn't exist
>  DROP TABLE t1;
>  ERROR 42S02: Unknown table 't1'
> +CREATE TABLE t1(a INT);
> +DROP TABLE t1;
>
> === renamed file 'mysql-test/suite/falcon_team/r/falcon_bug_34892.result' =>
> 'mysql-test/suite/falcon/r/falcon_bug_34892.result'
> === renamed file 'mysql-test/suite/falcon_team/t/falcon_bug_23945.test' =>
> 'mysql-test/suite/falcon/t/falcon_bug_23945.test'
> --- a/mysql-test/suite/falcon_team/t/falcon_bug_23945.test	2008-09-09 08:30:18 +0000
> +++ b/mysql-test/suite/falcon/t/falcon_bug_23945.test	2008-10-02 10:37:27 +0000
> @@ -36,6 +36,9 @@ SELECT * FROM t1;
>  --error ER_BAD_TABLE_ERROR
>  DROP TABLE t1;
>  
> +CREATE TABLE t1(a INT);
> +DROP TABLE t1;
> +
>  # ----------------------------------------------------- #
>  # --- Check                                         --- #
>  # ----------------------------------------------------- #
>
> === renamed file 'mysql-test/suite/falcon_team/t/falcon_bug_34892.test' =>
> 'mysql-test/suite/falcon/t/falcon_bug_34892.test'
> === modified file 'mysql-test/suite/falcon_team/t/disabled.def'
> --- a/mysql-test/suite/falcon_team/t/disabled.def	2008-09-10 22:35:51 +0000
> +++ b/mysql-test/suite/falcon_team/t/disabled.def	2008-10-02 10:37:27 +0000
> @@ -17,4 +17,3 @@
>  #    which should probably be attached to a bug report instead.
>  #    Also please keep the list sorted.
>  
> -falcon_bug_23945 : Bug#34892 2008-09-10 hky Test failure brings Falcon's data
> dictionary out of sync
>
> === modified file 'mysql-test/suite/falcon_team/t/test2bug.def'
> --- a/mysql-test/suite/falcon_team/t/test2bug.def	2008-09-28 07:16:36 +0000
> +++ b/mysql-test/suite/falcon_team/t/test2bug.def	2008-10-02 10:37:27 +0000
> @@ -20,5 +20,4 @@
>  falcon_bug_23945: Bug#34892 - Transaction handling in select_create::abort let's
> Falcon fail
>  falcon_bug_26433: Bug#39314 - falcon_bug_26433 fails with an offset of 1 in row
> numbers in expected warnings
>  falcon_bug_28048: Bug#36700 - Running falcon_bug_28048 shows increasing memory usage
> and run time
> -falcon_bug_34892: Bug#34892 - Transaction handling in select_create::abort let's
> Falcon fail
>  falcon_deadlock:  Bug#34182 - SELECT ... FOR UPDATE does not lock when in subquery
>
> === modified file 'sql/sql_insert.cc'
> --- a/sql/sql_insert.cc	2008-09-16 17:58:49 +0000
> +++ b/sql/sql_insert.cc	2008-10-02 10:37:27 +0000
> @@ -3788,10 +3788,10 @@ void select_create::abort()
>    DBUG_ENTER("select_create::abort");
>  
>    /*
> -    In select_insert::abort() we roll back the statement, including
> -    truncating the transaction cache of the binary log. To do this, we
> -    pretend that the statement is transactional, even though it might
> -    be the case that it was not.
> +    We roll back the statement here, including truncating the
> +    transaction cache of the binary log. To do this, we pretend that
> +    the statement is transactional, even though it might be the case
> +    that it was not.
>  
>      We roll back the statement prior to deleting the table and prior
>      to releasing the lock on the table, since there might be potential
> @@ -3805,6 +3805,7 @@ void select_create::abort()
>    tmp_disable_binlog(thd);
>    select_insert::abort();
>    thd->transaction.stmt.modified_non_trans_table= FALSE;
> +  trans_rollback_stmt(thd);
>    reenable_binlog(thd);
>    thd->binlog_flush_pending_rows_event(TRUE);
>  
>
>
> -- 
> MySQL Code Commits Mailing List
> For list archives: http://lists.mysql.com/commits
> To unsubscribe:    http://lists.mysql.com/commits?unsub=1
Thread
bzr commit into mysql-6.0-falcon-team branch (svoj:2842) Bug#12713,Bug#34892Sergey Vojtovich2 Oct
  • Re: bzr commit into mysql-6.0-falcon-team branch (svoj:2842) Bug#12713, Bug#34892Andrei Elkin2 Oct