mirror of
https://github.com/MariaDB/server.git
synced 2025-01-29 18:20:07 +01:00
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
This commit is contained in:
parent
2cb3c205ba
commit
f62a233a4d
4 changed files with 8 additions and 41 deletions
|
@ -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
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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'.
|
||||
|
|
|
@ -415,38 +415,6 @@ btr_pcur_commit_specify_mtr(
|
|||
pcur->pos_state = BTR_PCUR_WAS_POSITIONED;
|
||||
}
|
||||
|
||||
/**************************************************************//**
|
||||
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
|
||||
|
|
Loading…
Add table
Reference in a new issue