mariadb/storage/innobase
Sunny Bains 442ba20a92 Fix bug#54583. This change reverses rsvn:1350 by getting rid of a bogus assertion
and clarifies the invariant in dict_table_get_on_id().
      
In Mar 2007 Marko observed a crash during recovery, the crash resulted from
an UNDO operation on a system table. His solution was to acquire an X lock on
the data dictionary, this in hindsight was an overkill. It is unclear what
caused the crash, current hypothesis is that it was a memory corruption.
      
The X lock results in performance issues by when undoing changes due to
rollback during normal operation on regular tables.
      
Why the change is safe:
======================
The InnoDB code has changed since the original X lock change was made. In the
new code we always lock the data dictionary in X mode during startup when
UNDOing operations on the system tables (this is a given). This ensures that
the crash Marko observed cannot happen as long as all transactions that update
the system tables follow the standard rules by setting the appropriate DICT_OP
flag when writing the log records when they make the changes.
      
If transactions violate the above mentioned rule then during recovery (at
startup) the rollback code (see trx0roll.c) will not acquire the X lock
and we will see the crash again.  This will however be a different bug.
2010-06-25 18:18:41 +10:00
..
btr Applying InnoDB snapshot 5.1-ss6242, part 3. Fixes BUG#48469 2009-11-30 14:20:08 +05:30
buf Add Valgrind checks to catch uninitialized writes to data files. 2010-05-04 15:55:10 +03:00
data Applying InnoDB snapshot 5.1-ss6242, part 4. Fixes BUG#48526 2009-11-30 14:23:52 +05:30
dict Fix bug#54583. This change reverses rsvn:1350 by getting rid of a bogus assertion 2010-06-25 18:18:41 +10:00
dyn
eval
fil Applying InnoDB snapshot 5.1-ss6344, part 2. Fixes BUG#41609 but does 2009-12-21 15:50:32 +05:30
fsp fsp_init_file_page_low(): Zero out the page. (Bug #53306) 2010-05-04 16:13:58 +03:00
fut
ha Cherry-pick some changes from innodb-5.1-ss2545 snapshot. Includes fixes for 2008-08-20 16:18:33 -06:00
handler Move the fix for bug #54044 to security branch, and revert commit -r3520:3521. 2010-06-23 19:10:10 -07:00
ibuf Applying InnoDB snashot 5.1-ss3603. Fixes BUG#27276 2009-04-20 12:57:41 +05:30
include Fix bug#54583. This change reverses rsvn:1350 by getting rid of a bogus assertion 2010-06-25 18:18:41 +10:00
lock Bug#53674: InnoDB: Error: unlock row could not find a 4 mode lock on the record 2010-06-02 13:26:37 +03:00
log recv_sys_init(), recv_sys_empty_hash(): Shrink recv_sys->addr_hash. 2010-04-29 15:41:47 +02:00
mach
mem
mtr
os Applying InnoDB snapshot, fixes BUG#50691 2010-02-26 13:04:24 +04:00
page Applying InnoDB snashot 5.1-ss5024 part 1, Follow up Fix for BUG#43660 2009-05-19 13:22:19 +05:30
pars
que
read Applied InnoDB snapshot innodb-5.1-ss2298 2008-02-19 09:44:09 -07:00
rem
row Fix bug#54583. This change reverses rsvn:1350 by getting rid of a bogus assertion 2010-06-25 18:18:41 +10:00
srv Merge from mysql-trunk-innodb into mysql-5.1-innodb/storage/innobase: 2010-05-20 10:39:02 +03:00
sync Applied InnoDB snapshot innodb-5.1-ss2298 2008-02-19 09:44:09 -07:00
thr
trx Make the InnoDB FOREIGN KEY parser understand multi-statements. (Bug #48024) 2010-05-14 16:02:28 +03:00
usr
ut Applying InnoDB snapshot 5.1-ss6242, part 1. Fixes BUG#32430 2009-11-30 13:56:45 +05:30
CMakeLists.txt Import branches/5.1@r6912 from SVN on top of storage/innobase 2010-03-31 10:17:04 +03:00
Makefile.am Applying InnoDB snashot 5.1-ss6129 2009-11-02 19:07:26 +04:00
plug.in Import branches/5.1@r6912 from SVN on top of storage/innobase 2010-03-31 10:17:04 +03:00