mariadb/storage/innobase
Marko Mäkelä 5b4ceba58d Bug#12612184 Race condition after btr_cur_pessimistic_update()
btr_cur_compress_if_useful(), btr_compress(): Add the parameter ibool
adjust. If adjust=TRUE, adjust the cursor position after compressing
the page.

btr_lift_page_up(): Return a pointer to the father page.

BTR_KEEP_POS_FLAG: A new flag for btr_cur_pessimistic_update().

btr_cur_pessimistic_update(): If *big_rec != NULL and flags &
BTR_KEEP_POS_FLAG, keep the cursor positioned on the updated record.
Also, do not release the index tree x-lock if *big_rec != NULL.

btr_cur_mtr_commit_and_start(): Commits and restarts a
mini-transaction so that it will retain an x-lock on index->lock and
the page of the cursor. This is invoked when
btr_cur_pessimistic_update() returns *big_rec != NULL.

In all callers of btr_cur_pessimistic_update() that do not pass
BTR_KEEP_POS_FLAG, assert that *big_rec == NULL.

btr_cur_compress(): Unused function [in the built-in MySQL 5.1], remove.

page_rec_get_nth(): Return the nth record on the page (an inverse
function of page_rec_get_n_recs_before()). Refactored from
page_get_middle_rec().

page_get_middle_rec(): Invoke page_rec_get_nth().

page_cur_insert_rec_zip_reorg(): Make use of the page directory
shortcuts in page_rec_get_nth() instead of scanning the whole list of
records.

row_ins_clust_index_entry_by_modify(): Pass BTR_KEEP_POS_FLAG to
btr_cur_pessimistic_update().

row_ins_index_entry_low(): If row_ins_clust_index_entry_by_modify()
returns a big_rec, invoke btr_cur_mtr_commit_and_start() in order to
commit and start the mini-transaction without releasing the x-locks on
index->lock and the cursor page, and write the big_rec. Releasing the
page latch in mtr_commit() caused a race condition.

row_upd_clust_rec(): Pass BTR_KEEP_POS_FLAG to
btr_cur_pessimistic_update(). If it returns a big_rec, invoke
btr_cur_mtr_commit_and_start() in order to commit and start the
mini-transaction without releasing the x-locks on index->lock and the
cursor page, and write the big_rec. Releasing the page latch in
mtr_commit() caused a race condition.

sync_thread_add_level(): Add the parameter ibool relock. When TRUE,
bypass the latching order rules.

rw_lock_add_debug_info(): For nested X-lock requests, pass relock=TRUE
to sync_thread_add_level().

rb:678 approved by Jimmy Yang
2011-06-16 10:27:21 +03:00
..
btr Bug#12612184 Race condition after btr_cur_pessimistic_update() 2011-06-16 10:27:21 +03:00
buf (Builtin InnoDB) Fix Bug#59303 Correct URL in crash message 2011-01-06 09:05:45 +02:00
data Applying InnoDB snapshot 5.1-ss6242, part 4. Fixes BUG#48526 2009-11-30 14:23:52 +05:30
dict Fix bug #11796673 address backward compatibility on index with 2011-05-04 03:06:21 -07:00
dyn Apply the following innodb-5.1-* snapshots: ss1489, ss1496, ss1550, ss1569. 2007-07-10 05:37:43 -06:00
eval Remove redundant variable 2010-09-14 12:11:00 +03:00
fil Fix Bug #54538 - use of exclusive innodb dictionary lock limits performance. 2010-08-20 17:49:43 +10:00
fsp (Builtin InnoDB) Fix Bug#59303 Correct URL in crash message 2011-01-06 09:05:45 +02:00
fut Apply the following innodb-5.1-* snapshots: ss1489, ss1496, ss1550, ss1569. 2007-07-10 05:37:43 -06:00
ha Cherry-pick some changes from innodb-5.1-ss2545 snapshot. Includes fixes for 2008-08-20 16:18:33 -06:00
handler Fix for bug #11762012 - "54553: INNODB ASSERTS IN 2011-05-26 17:14:47 +04:00
ibuf Bug #56680 wrong InnoDB results from a case-insensitive covering index 2010-10-19 08:58:53 +03:00
include Bug#12612184 Race condition after btr_cur_pessimistic_update() 2011-06-16 10:27:21 +03:00
lock (partially) Fix Bug#55227 Fix compiler warnings in innodb with gcc 4.6 2010-09-14 12:37:03 +03:00
log Bug #11766513 - 59641: Prepared XA transaction in system after hard crash 2011-04-07 21:12:54 +03:00
mach Apply the following innodb-5.1-* snapshots: ss1489, ss1496, ss1550, ss1569. 2007-07-10 05:37:43 -06:00
mem Apply snapshot innodb-5.1-ss1989 2007-11-06 15:42:58 -07:00
mtr Apply InnoDB snapshot innodb-5.1-ss1751. 2007-08-25 03:55:38 -06:00
os Bug#52062: Compiler warning in os0file.c on windows 64-bit 2010-10-27 23:18:59 -05:00
page Bug#12612184 Race condition after btr_cur_pessimistic_update() 2011-06-16 10:27:21 +03:00
pars Apply InnoDB snapshot innodb-5.1-ss1751. 2007-08-25 03:55:38 -06:00
que (partially) Fix Bug#55227 Fix compiler warnings in innodb with gcc 4.6 2010-09-14 13:39:52 +03:00
read Applied InnoDB snapshot innodb-5.1-ss2298 2008-02-19 09:44:09 -07:00
rem Fix Bug#30423 "InnoDBs treatment of NULL in index stats causes bad 2011-01-14 09:02:28 -08:00
row Bug#12612184 Race condition after btr_cur_pessimistic_update() 2011-06-16 10:27:21 +03:00
srv Bug#11877216 InnoDB too eager to commit suicide on a busy server 2011-03-30 14:25:58 +03:00
sync Bug#12612184 Race condition after btr_cur_pessimistic_update() 2011-06-16 10:27:21 +03:00
thr Apply the following innodb-5.1-* snapshots: ss1489, ss1496, ss1550, ss1569. 2007-07-10 05:37:43 -06:00
trx Introduce UNIV_BLOB_NULL_DEBUG for temporarily hiding Bug#12650861. 2011-06-15 10:16:59 +03:00
usr Apply the following innodb-5.1-* snapshots: ss1489, ss1496, ss1550, ss1569. 2007-07-10 05:37:43 -06:00
ut (Builtin InnoDB) Fix Bug#59303 Correct URL in crash message 2011-01-06 09:05:45 +02:00
CMakeLists.txt Import branches/5.1@r6912 from SVN on top of storage/innobase 2010-03-31 10:17:04 +03:00
Makefile.am Bug#53445: Build with -Wall and fix warnings that it generates 2010-07-09 08:37:51 -03:00
plug.in Import branches/5.1@r6912 from SVN on top of storage/innobase 2010-03-31 10:17:04 +03:00