mariadb/storage/innobase
Sunny Bains 1d329468ab Fix bug#54583. This change reverses r1530 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 12:59:37 +10:00
..
btr Bug#54728: Replace the dulint struct with a 64-bit integer. 2010-06-23 14:06:59 +03:00
buf Bug#54728: Replace the dulint struct with a 64-bit integer. 2010-06-23 14:06:59 +03:00
data Bug#54728: Replace the dulint struct with a 64-bit integer. 2010-06-23 14:06:59 +03:00
dict Fix bug#54583. This change reverses r1530 by getting rid of a bogus assertion 2010-06-25 12:59:37 +10:00
dyn Renamed storage/innodb_plugin to storage/innobase, so that 1) it's the same 2009-08-07 12:16:00 +02:00
eval Renamed storage/innodb_plugin to storage/innobase, so that 1) it's the same 2009-08-07 12:16:00 +02:00
fil Bug#54728: Replace the dulint struct with a 64-bit integer. 2010-06-23 14:06:59 +03:00
fsp Bug#54728: Replace the dulint struct with a 64-bit integer. 2010-06-23 14:06:59 +03:00
fut Renamed storage/innodb_plugin to storage/innobase, so that 1) it's the same 2009-08-07 12:16:00 +02:00
ha Merge from innodb-branches-innodb+ (2) 2010-04-19 20:53:16 +03:00
handler Merge Bug #54679 fix from mysql-5.1-innodb: 2010-06-24 14:06:52 +03:00
ibuf Bug#54728: Replace the dulint struct with a 64-bit integer. 2010-06-23 14:06:59 +03:00
include Fix bug#54583. This change reverses r1530 by getting rid of a bogus assertion 2010-06-25 12:59:37 +10:00
lock Bug#54728: Replace the dulint struct with a 64-bit integer. 2010-06-23 14:06:59 +03:00
log Bug#54728: Replace the dulint struct with a 64-bit integer. 2010-06-23 14:06:59 +03:00
mach mach_ull_parse_compressed(): Move to .ic file to silence a GCC warning 2010-06-24 09:08:42 +03:00
mem Fix bug #52546, crash on shutdown of plugin with innodb_use_sys_malloc=0. 2010-05-17 01:57:42 -07:00
mtr Bug#54728: Replace the dulint struct with a 64-bit integer. 2010-06-23 14:06:59 +03:00
mysql-test/patches Move InnoDB tests from storage/innobase/mysql-test/ (where they were ignored) 2010-04-14 14:14:48 +03:00
os Add two debug assertions and a comment to make it clear that 2010-05-27 20:30:08 +03:00
page Bug#54728: Replace the dulint struct with a 64-bit integer. 2010-06-23 14:06:59 +03:00
pars Bug#54728: Replace the dulint struct with a 64-bit integer. 2010-06-23 14:06:59 +03:00
que Remove references to srv0que.h. 2010-05-12 12:20:26 +10:00
read Bug#54728: Replace the dulint struct with a 64-bit integer. 2010-06-23 14:06:59 +03:00
rem Merge from mysql-5.1-innodb: 2010-05-11 19:18:28 +03:00
row Fix bug#54583. This change reverses r1530 by getting rid of a bogus assertion 2010-06-25 12:59:37 +10:00
srv This change splits innodb_file_format_check into innodb_file_format_check 2010-06-17 02:13:53 -07:00
sync Merge a change from mysql-5.1-innodb: 2010-06-01 17:03:55 +03:00
thr Import branches/innodb+ from SVN on top of storage/innobase. 2010-04-12 18:20:41 +03:00
trx trx_undo_parse_page_header(): Silence a bogus warning. 2010-06-24 10:21:40 +03:00
usr Merge Innodb Plugin 1.0.6 from mysql-5.1-bugteam storage/innodb_plugin to mysql-trunk-merge. 2009-12-02 19:30:50 +05:30
ut Bug#54728: Replace the dulint struct with a 64-bit integer. 2010-06-23 14:06:59 +03:00
CMakeLists.txt Enable InnoDB's UNIV_DEBUG if MySQL's WITH_DEBUG[_FULL] is defined 2010-06-23 13:02:49 +03:00
compile-innodb Update compile-innodb to use cmake and remove the debug version. 2010-04-15 12:33:07 +03:00
COPYING Renamed storage/innodb_plugin to storage/innobase, so that 1) it's the same 2009-08-07 12:16:00 +02:00
COPYING.Google Renamed storage/innodb_plugin to storage/innobase, so that 1) it's the same 2009-08-07 12:16:00 +02:00
COPYING.Percona Renamed storage/innodb_plugin to storage/innobase, so that 1) it's the same 2009-08-07 12:16:00 +02:00
COPYING.Sun_Microsystems Renamed storage/innodb_plugin to storage/innobase, so that 1) it's the same 2009-08-07 12:16:00 +02:00
Doxyfile Renamed storage/innodb_plugin to storage/innobase, so that 1) it's the same 2009-08-07 12:16:00 +02:00
ha_innodb.def Renamed storage/innodb_plugin to storage/innobase, so that 1) it's the same 2009-08-07 12:16:00 +02:00
Makefile.am Merge mysql-trunk-bugfixing -> mysql-trunk-innodb 2010-05-19 23:48:50 +03:00
plug.in Import branches/innodb+ from SVN on top of storage/innobase. 2010-04-12 18:20:41 +03:00