List:Commits« Previous MessageNext Message »
From:marko.makela Date:November 8 2011 12:39pm
Subject:bzr push into mysql-5.1 branch (marko.makela:3637 to 3638) Bug#13358468
View as plain text  
 3638 Marko Mäkelä	2011-11-08
      Bug#13358468 ASSERTION FAILURE IN BTR_PCUR_GET_BLOCK
      
      btr_pcur_restore_position_func(): When the cursor was positioned at
      the tree infimum or supremum, initialize pos_state and latch_mode. The
      assertion failed, because pos_state was BTR_PCUR_WAS_POSITIONED.  In
      the test failure of WL#5874, the purge thread attempted to restore the
      cursor position on the infimum record (the clustered index was empty).
      
      btr_pcur_detach(), btr_pcur_is_detached(): Unused functions, remove.
      
      rb:804 approved by Inaam Rana

    modified:
      storage/innodb_plugin/ChangeLog
      storage/innodb_plugin/btr/btr0pcur.c
      storage/innodb_plugin/include/btr0pcur.h
      storage/innodb_plugin/include/btr0pcur.ic
 3637 Marko Mäkelä	2011-11-07
      Add debug assertions to catch Bug#13345378 earlier.
      
      In all callers of row_sel_convert_mysql_key_to_innobase(), assert
      that the converted key is empty or nonempty when it should be.

    modified:
      storage/innobase/handler/ha_innodb.cc
      storage/innodb_plugin/handler/ha_innodb.cc
=== modified file 'storage/innodb_plugin/ChangeLog'
--- a/storage/innodb_plugin/ChangeLog	revid:marko.makela@oracle.com-20111107113719-geae9ea2tpy1li52
+++ b/storage/innodb_plugin/ChangeLog	revid:marko.makela@stripped121522-hyfqxk533a9bnnkf
@@ -1,7 +1,12 @@
+2011-11-08	The InnoDB Team
+
+	* btr/btr0pcur.c, include/btr0pcur.h, include/btr0pcur.ic:
+	Fix Bug#13358468 ASSERTION FAILURE IN BTR_PCUR_GET_BLOCK
+
 2011-10-27	The InnoDB Team
 
 	* row/row0mysql.c:
-	Fix Bug #12884631 62146: TABLES ARE LOST FOR DDL
+	Fix Bug#12884631 62146: TABLES ARE LOST FOR DDL
 
 2011-10-20	The InnoDB Team
 

=== modified file 'storage/innodb_plugin/btr/btr0pcur.c'
--- a/storage/innodb_plugin/btr/btr0pcur.c	revid:marko.makela@stripped107113719-geae9ea2tpy1li52
+++ b/storage/innodb_plugin/btr/btr0pcur.c	revid:marko.makela@stripped-hyfqxk533a9bnnkf
@@ -247,6 +247,8 @@ btr_pcur_restore_position_func(
 			cursor->rel_pos == BTR_PCUR_BEFORE_FIRST_IN_TREE,
 			index, latch_mode, btr_pcur_get_btr_cur(cursor), mtr);
 
+		cursor->latch_mode = latch_mode;
+		cursor->pos_state = BTR_PCUR_IS_POSITIONED;
 		cursor->block_when_stored = btr_pcur_get_block(cursor);
 
 		return(FALSE);

=== modified file 'storage/innodb_plugin/include/btr0pcur.h'
--- a/storage/innodb_plugin/include/btr0pcur.h	revid:marko.makela@strippedli52
+++ b/storage/innodb_plugin/include/btr0pcur.h	revid:marko.makela@stripped
@@ -279,14 +279,6 @@ btr_pcur_commit_specify_mtr(
 /*========================*/
 	btr_pcur_t*	pcur,	/*!< in: persistent cursor */
 	mtr_t*		mtr);	/*!< in: mtr to commit */
-/**************************************************************//**
-Tests if a cursor is detached: that is the latch mode is BTR_NO_LATCHES.
-@return	TRUE if detached */
-UNIV_INLINE
-ibool
-btr_pcur_is_detached(
-/*=================*/
-	btr_pcur_t*	pcur);	/*!< in: persistent cursor */
 /*********************************************************//**
 Moves the persistent cursor to the next record in the tree. If no records are
 left, the cursor stays 'after last in tree'.

=== modified file 'storage/innodb_plugin/include/btr0pcur.ic'
--- a/storage/innodb_plugin/include/btr0pcur.ic	revid:marko.makela@stripped7113719-geae9ea2tpy1li52
+++ b/storage/innodb_plugin/include/btr0pcur.ic	revid:marko.makela@stripped522-hyfqxk533a9bnnkf
@@ -416,38 +416,6 @@ btr_pcur_commit_specify_mtr(
 }
 
 /**************************************************************//**
-Sets the pcur latch mode to BTR_NO_LATCHES. */
-UNIV_INLINE
-void
-btr_pcur_detach(
-/*============*/
-	btr_pcur_t*	pcur)	/*!< in: persistent cursor */
-{
-	ut_a(pcur->pos_state == BTR_PCUR_IS_POSITIONED);
-
-	pcur->latch_mode = BTR_NO_LATCHES;
-
-	pcur->pos_state = BTR_PCUR_WAS_POSITIONED;
-}
-
-/**************************************************************//**
-Tests if a cursor is detached: that is the latch mode is BTR_NO_LATCHES.
-@return	TRUE if detached */
-UNIV_INLINE
-ibool
-btr_pcur_is_detached(
-/*=================*/
-	btr_pcur_t*	pcur)	/*!< in: persistent cursor */
-{
-	if (pcur->latch_mode == BTR_NO_LATCHES) {
-
-		return(TRUE);
-	}
-
-	return(FALSE);
-}
-
-/**************************************************************//**
 Sets the old_rec_buf field to NULL. */
 UNIV_INLINE
 void

No bundle (reason: useless for push emails).
Thread
bzr push into mysql-5.1 branch (marko.makela:3637 to 3638) Bug#13358468marko.makela11 Nov