mariadb/storage/innobase/include
Sunny Bains 7299858763 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
..
btr0btr.h Applied innodb-5.1-ss1004 2006-11-09 05:01:19 +01:00
btr0btr.ic Applied innodb-5.1 snapshots ss799 and ss854 2006-09-21 01:39:09 -06:00
btr0cur.h Applied innodb-5.1 snapshots ss799 and ss854 2006-09-21 01:39:09 -06:00
btr0cur.ic Applied innodb-5.1 snapshots ss799 and ss854 2006-09-21 01:39:09 -06:00
btr0pcur.h Applied innodb-5.1 snapshots ss799 and ss854 2006-09-21 01:39:09 -06:00
btr0pcur.ic Applied InnoDB 5.1 snapshot ss787. 2006-09-05 03:52:15 +02:00
btr0sea.h Complete application of InnoDB snapshot innodb-5.1-ss2545. 2008-12-14 12:25:33 -07:00
btr0sea.ic Applied innodb-5.1-ss269 snapshot. 2006-03-10 19:22:21 +03:00
btr0types.h Applied innodb-5.1-ss269 snapshot. 2006-03-10 19:22:21 +03:00
buf0buf.h Cherry-pick some changes from innodb-5.1-ss2479 snapshot. Includes fixes for 2008-08-19 18:37:41 -06:00
buf0buf.ic Apply snapshot innodb-51-ss1644 2007-07-24 19:34:31 -06:00
buf0flu.h Applied innodb-5.1-ss269 snapshot. 2006-03-10 19:22:21 +03:00
buf0flu.ic Apply the following InnoDB snapshots: 2007-03-22 15:59:35 -06:00
buf0lru.h Applied innodb-5.1-ss475 snapshot. 2006-04-23 12:48:31 +04:00
buf0lru.ic Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
buf0rea.h Applying InnoDB snapshot, fixes BUG#38901 2010-02-26 13:03:58 +04:00
buf0types.h Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
data0data.h Applied InnoDB 5.1 snapshot ss787. 2006-09-05 03:52:15 +02:00
data0data.ic Applied innodb-5.1 snapshots ss799 and ss854 2006-09-21 01:39:09 -06:00
data0type.h Applied innodb-5.1 snapshots ss799 and ss854 2006-09-21 01:39:09 -06:00
data0type.ic Applying InnoDB snapshot innodb-5.1-ss3603 2009-01-12 23:27:11 +01:00
data0types.h Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
db0err.h Bug#53674: InnoDB: Error: unlock row could not find a 4 mode lock on the record 2010-06-02 13:26:37 +03:00
dict0boot.h Applied innodb-5.1 snapshots ss799 and ss854 2006-09-21 01:39:09 -06:00
dict0boot.ic Applied innodb-5.1-ss269 snapshot. 2006-03-10 19:22:21 +03:00
dict0crea.h Applied innodb-5.1-ss1004 2006-11-09 05:01:19 +01:00
dict0crea.ic Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
dict0dict.h Make the InnoDB FOREIGN KEY parser understand multi-statements. (Bug #48024) 2010-05-14 16:02:28 +03:00
dict0dict.ic Apply the following innodb-5.1-* snapshots: ss1489, ss1496, ss1550, ss1569. 2007-07-10 05:37:43 -06:00
dict0load.h Applied innodb-5.1-ss269 snapshot. 2006-03-10 19:22:21 +03:00
dict0load.ic Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
dict0mem.h Apply InnoDB snapshot innodb-5.1-ss2858, part 15. Fixes 2008-12-14 13:59:50 -07:00
dict0mem.ic Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
dict0types.h Applied innodb-5.1 snapshots ss799 and ss854 2006-09-21 01:39:09 -06:00
dyn0dyn.h Applied innodb-5.1-ss269 snapshot. 2006-03-10 19:22:21 +03:00
dyn0dyn.ic Applied innodb-5.1-ss269 snapshot. 2006-03-10 19:22:21 +03:00
eval0eval.h Applied innodb-5.1-ss269 snapshot. 2006-03-10 19:22:21 +03:00
eval0eval.ic Applied InnoDB 5.1 snapshot ss787. 2006-09-05 03:52:15 +02:00
eval0proc.h Applied innodb-5.1-ss475 snapshot. 2006-04-23 12:48:31 +04:00
eval0proc.ic Applied innodb-5.1-ss269 snapshot. 2006-03-10 19:22:21 +03:00
fil0fil.h Applying InnoDB snapshot 5.1-ss6344, part 2. Fixes BUG#41609 but does 2009-12-21 15:50:32 +05:30
fsp0fsp.h Applying InnoDB snashot 5.1-ss5282, PRE-Fix for BUG#45097 2009-06-11 18:21:54 +05:30
fsp0fsp.ic Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
fsp0types.h Applying InnoDB snashot 5.1-ss5282, PRE-Fix for BUG#45097 2009-06-11 18:21:54 +05:30
fut0fut.h Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
fut0fut.ic Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
fut0lst.h Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
fut0lst.ic Applied InnoDB 5.1 snapshot ss787. 2006-09-05 03:52:15 +02:00
ha0ha.h Applied innodb-5.1-ss1039 and innodb-5.1-ss1134 snapshots. 2007-01-04 19:51:34 -07:00
ha0ha.ic Apply the following InnoDB snapshots: 2007-03-22 15:59:35 -06:00
ha_prototypes.h Applying InnoDB snapshot 5.1-ss6242, part 1. Fixes BUG#32430 2009-11-30 13:56:45 +05:30
hash0hash.h Merge mysql.com:/home/kent/bk/tmp2/mysql-5.0-build 2007-01-15 10:37:27 +01:00
hash0hash.ic Applying InnoDB snapshot innodb-5.1-ss3603 2009-01-12 23:32:50 +01:00
ibuf0ibuf.h Applied innodb-5.1-ss594 snapshot. 2006-06-01 10:34:04 +04:00
ibuf0ibuf.ic Applied innodb-5.1 snapshots ss799 and ss854 2006-09-21 01:39:09 -06:00
ibuf0types.h Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
lock0iter.h Apply snapshot innodb-51-ss1644: Part #2. 2007-07-25 13:29:57 -06:00
lock0lock.h Bug#53674: InnoDB: Error: unlock row could not find a 4 mode lock on the record 2010-06-02 13:26:37 +03:00
lock0lock.ic Apply the following InnoDB snapshots: 2007-03-22 15:59:35 -06:00
lock0priv.h Apply snapshot innodb-51-ss1644: Part #2. 2007-07-25 13:29:57 -06:00
lock0priv.ic Apply snapshot innodb-51-ss1644: Part #2. 2007-07-25 13:29:57 -06:00
lock0types.h Applied innodb-5.1-ss269 snapshot. 2006-03-10 19:22:21 +03:00
log0log.h Applied innodb-5.1-ss269 snapshot. 2006-03-10 19:22:21 +03:00
log0log.ic Apply the following InnoDB snapshots: 2007-03-22 15:59:35 -06:00
log0recv.h Applied InnoDB 5.1 snapshot ss787. 2006-09-05 03:52:15 +02:00
log0recv.ic Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
mach0data.h Applying InnoDB snapshot 5.1-ss6242, part 7. Fixes BUG#49032 2009-11-30 15:11:38 +05:30
mach0data.ic Make UNIV_DEBUG Valgrind friendly in the built-in InnoDB. 2010-05-19 11:16:18 +03:00
mem0dbg.h Apply snapshot innodb-5.1-ss1989 2007-11-06 15:42:58 -07:00
mem0dbg.ic Applied innodb-5.1-ss269 snapshot. 2006-03-10 19:22:21 +03:00
mem0mem.h Merge r6103 from InnoDB Plugin to the built-in InnoDB to fix Bug #53202: 2010-04-28 08:33:25 +02:00
mem0mem.ic Merge r6103 from InnoDB Plugin to the built-in InnoDB to fix Bug #53202: 2010-04-28 08:33:25 +02:00
mem0pool.h Applied innodb-5.1-ss269 snapshot. 2006-03-10 19:22:21 +03:00
mem0pool.ic Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
mtr0log.h Merge tulin@bk-internal.mysql.com:/home/bk/mysql-5.0 2005-06-21 08:49:21 +02:00
mtr0log.ic Applying InnoDB snashot 5.1-ss5282, Fix for BUG#45097 2009-06-11 18:35:12 +05:30
mtr0mtr.h Applying InnoDB snapshot 5.1-ss6344, part 2. Fixes BUG#41609 but does 2009-12-21 15:50:32 +05:30
mtr0mtr.ic Apply InnoDB snapshot ss923 2006-10-20 12:36:15 -06:00
mtr0types.h Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
os0file.h Applying InnoDB snapshot 5.1-ss6242, part 2. Fixes BUG#3139 2009-11-30 14:10:31 +05:30
os0proc.h Applied innodb-5.1-ss269 snapshot. 2006-03-10 19:22:21 +03:00
os0proc.ic Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
os0sync.h Applied InnoDB snapshot innodb-5.1-ss2298 2008-02-19 09:44:09 -07:00
os0sync.ic Applied innodb-5.1-ss269 snapshot. 2006-03-10 19:22:21 +03:00
os0thread.h Applied innodb-5.1-ss492 snapshot. 2006-04-26 08:30:37 +04:00
os0thread.ic Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
page0cur.h Applied InnoDB snapshot innodb-5.1-ss2093 2007-11-20 12:23:18 -07:00
page0cur.ic Applied InnoDB 5.1 snapshot ss787. 2006-09-05 03:52:15 +02:00
page0page.h Apply snapshot innodb-51-ss1644 2007-07-24 19:34:31 -06:00
page0page.ic Applied innodb-5.1 snapshots ss799 and ss854 2006-09-21 01:39:09 -06:00
page0types.h Applied innodb-5.1-ss269 snapshot. 2006-03-10 19:22:21 +03:00
pars0grm.h Applied innodb-5.1-ss660 snapshot. 2006-07-26 13:28:51 +04:00
pars0opt.h Applied innodb-5.1-ss269 snapshot. 2006-03-10 19:22:21 +03:00
pars0opt.ic Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
pars0pars.h Bug#29125 Windows Server X64: so many compiler warnings 2009-02-13 11:41:47 -05:00
pars0pars.ic Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
pars0sym.h Applied innodb-5.1-ss594 snapshot. 2006-06-01 10:34:04 +04:00
pars0sym.ic Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
pars0types.h Applied innodb-5.1-ss594 snapshot. 2006-06-01 10:34:04 +04:00
que0que.h Applied innodb-5.1-ss660 snapshot. 2006-07-26 13:28:51 +04:00
que0que.ic Applied InnoDB 5.1 snapshot ss787. 2006-09-05 03:52:15 +02:00
que0types.h Applied innodb-5.1-ss269 snapshot. 2006-03-10 19:22:21 +03:00
read0read.h Applied InnoDB snapshot innodb-5.1-ss2298 2008-02-19 09:44:09 -07:00
read0read.ic Applied innodb-5.1 snapshots ss799 and ss854 2006-09-21 01:39:09 -06:00
read0types.h Merge mronstrom@bk-internal.mysql.com:/home/bk/mysql-5.0 2005-08-05 18:01:34 -04:00
rem0cmp.h Applied innodb-5.1 snapshots ss799 and ss854 2006-09-21 01:39:09 -06:00
rem0cmp.ic Applied innodb-5.1 snapshots ss799 and ss854 2006-09-21 01:39:09 -06:00
rem0rec.h Applying InnoDB snashot 5.1-ss4007, part 1. Fixes 2009-03-02 18:09:35 -07:00
rem0rec.ic Applying InnoDB snashot 5.1-ss4007, part 1. Fixes 2009-03-02 18:09:35 -07:00
rem0types.h Applied innodb-5.1 snapshots ss799 and ss854 2006-09-21 01:39:09 -06:00
row0ins.h Applied innodb-5.1-ss269 snapshot. 2006-03-10 19:22:21 +03:00
row0ins.ic Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
row0mysql.h Bug#53674: InnoDB: Error: unlock row could not find a 4 mode lock on the record 2010-06-02 13:26:37 +03:00
row0mysql.ic Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
row0purge.h Applied InnoDB 5.1 snapshot ss787. 2006-09-05 03:52:15 +02:00
row0purge.ic Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
row0row.h Applied InnoDB 5.1 snapshot ss787. 2006-09-05 03:52:15 +02:00
row0row.ic Applied InnoDB 5.1 snapshot ss787. 2006-09-05 03:52:15 +02:00
row0sel.h Apply innodb-5.1-ss2360 snapshot 2008-03-27 02:40:45 +01:00
row0sel.ic Applied InnoDB 5.1 snapshot ss787. 2006-09-05 03:52:15 +02:00
row0types.h Applied innodb-5.1-ss269 snapshot. 2006-03-10 19:22:21 +03:00
row0uins.h Applied innodb-5.1-ss269 snapshot. 2006-03-10 19:22:21 +03:00
row0uins.ic Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
row0umod.h Applied innodb-5.1-ss269 snapshot. 2006-03-10 19:22:21 +03:00
row0umod.ic Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
row0undo.h Applied InnoDB 5.1 snapshot ss787. 2006-09-05 03:52:15 +02:00
row0undo.ic Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
row0upd.h Applied innodb-5.1-ss475 snapshot. 2006-04-23 12:48:31 +04:00
row0upd.ic Applied innodb-5.1 snapshots ss799 and ss854 2006-09-21 01:39:09 -06:00
row0vers.h Applied innodb-5.1-ss269 snapshot. 2006-03-10 19:22:21 +03:00
row0vers.ic Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
srv0que.h Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
srv0srv.h Applying InnoDB snapshot 5.1-ss6344, Fixes BUG#47814 2009-12-23 12:29:34 +05:30
srv0srv.ic Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
srv0start.h Applied innodb-5.1-ss269 snapshot. 2006-03-10 19:22:21 +03:00
sync0arr.h Applied InnoDB snapshot innodb-5.1-ss2298 2008-02-19 09:44:09 -07:00
sync0arr.ic Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
sync0rw.h Applied InnoDB snapshot innodb-5.1-ss2298 2008-02-19 09:44:09 -07:00
sync0rw.ic Applied InnoDB snapshot innodb-5.1-ss2298 2008-02-19 09:44:09 -07:00
sync0sync.h Fix bug#54583. This change reverses rsvn:1350 by getting rid of a bogus assertion 2010-06-25 18:18:41 +10:00
sync0sync.ic Apply InnoDB snapshot innodb-5.1-ss2858, part 3. 2008-12-14 13:27:13 -07:00
sync0types.h Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
thr0loc.h Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
thr0loc.ic Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
trx0purge.h Applied innodb-5.1-ss269 snapshot. 2006-03-10 19:22:21 +03:00
trx0purge.ic Applied innodb-5.1-ss269 snapshot. 2006-03-10 19:22:21 +03:00
trx0rec.h Applied innodb-5.1-ss269 snapshot. 2006-03-10 19:22:21 +03:00
trx0rec.ic Applied InnoDB 5.1 snapshot ss787. 2006-09-05 03:52:15 +02:00
trx0roll.h Applying InnoDB snashot 5.1-ss3931, part 1. Fixes 2009-03-02 18:06:44 -07:00
trx0roll.ic Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
trx0rseg.h Applied innodb-5.1-ss269 snapshot. 2006-03-10 19:22:21 +03:00
trx0rseg.ic Applying InnoDB snashot 5.1-ss5343, Fixes BUG#45357 2009-06-22 16:58:00 +05:30
trx0sys.h Applying InnoDB snashot 5.1-ss5282, Fix for BUG#45097 2009-06-11 18:35:12 +05:30
trx0sys.ic Merge from innodb-branches-5.1 2010-04-07 21:59:02 +03:00
trx0trx.h Make the InnoDB FOREIGN KEY parser understand multi-statements. (Bug #48024) 2010-05-14 16:02:28 +03:00
trx0trx.ic Applying InnoDB snashot 5.1-ss4699, part 1. Fixes BUG#39320 and other 2009-04-15 17:16:08 +05:30
trx0types.h Applied innodb-5.1-ss269 snapshot. 2006-03-10 19:22:21 +03:00
trx0undo.h apply snapshot innodb-5.1-ss2387 2008-03-27 15:13:10 +01:00
trx0undo.ic Applied InnoDB 5.1 snapshot ss787. 2006-09-05 03:52:15 +02:00
trx0xa.h Applied InnoDB 5.1 snapshot ss787. 2006-09-05 03:52:15 +02:00
univ.i Bug#53593: Add some instrumentation to improve Valgrind sensitivity 2010-05-20 13:40:42 +03:00
usr0sess.h Applied innodb-5.1-ss269 snapshot. 2006-03-10 19:22:21 +03:00
usr0sess.ic Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
usr0types.h Applied innodb-5.1-ss269 snapshot. 2006-03-10 19:22:21 +03:00
ut0byte.h Applied innodb-5.1-ss269 snapshot. 2006-03-10 19:22:21 +03:00
ut0byte.ic Fixed compiler warnings 2007-02-23 13:13:55 +02:00
ut0dbg.h Applied innodb-5.1-ss594 snapshot. 2006-06-01 10:34:04 +04:00
ut0list.h Applied innodb-5.1-ss594 snapshot. 2006-06-01 10:34:04 +04:00
ut0list.ic Applied innodb-5.1-ss594 snapshot. 2006-06-01 10:34:04 +04:00
ut0lst.h Apply the following InnoDB snapshots: 2007-03-22 15:59:35 -06:00
ut0mem.h Apply InnoDB snapshot innodb-5.1-ss1726. 2007-08-24 19:14:52 -06:00
ut0mem.ic Applied innodb-5.1-ss269 snapshot. 2006-03-10 19:22:21 +03:00
ut0rnd.h Applied innodb-5.1-ss269 snapshot. 2006-03-10 19:22:21 +03:00
ut0rnd.ic Applied InnoDB 5.1 snapshot ss787. 2006-09-05 03:52:15 +02:00
ut0sort.h Applied innodb-5.1-ss269 snapshot. 2006-03-10 19:22:21 +03:00
ut0ut.h Complete application of InnoDB snapshot innodb-5.1-ss2485, part 1. Fixes 2008-12-14 12:18:59 -07:00
ut0ut.ic Fixed compiler warnings 2007-02-23 13:13:55 +02:00
ut0vec.h Applied innodb-5.1-ss475 snapshot. 2006-04-23 12:48:31 +04:00
ut0vec.ic Applied innodb-5.1-ss475 snapshot. 2006-04-23 12:48:31 +04:00
ut0wqueue.h Applied innodb-5.1-ss594 snapshot. 2006-06-01 10:34:04 +04:00