mariadb/storage/innobase/include
Timothy Smith 980ec41fe7 Complete application of InnoDB snapshot innodb-5.1-ss2545.
Fix race condition which could result in freeing a struct that is
still in use by another thread.


Detailed revision comments:

r2537 | inaam | 2008-07-15 20:46:03 +0300 (Tue, 15 Jul 2008) | 12 lines
branches/5.1   issue# 4

Fixed a timing hole where a thread dropping an index can free the
in-memory index struct while another thread is still using
that structure to remove entries from adaptive hash index belonging
to one of the pages that belongs to the index being dropped.

The fix is to have a reference counter in the index struct and to
wait for this counter to drop to zero beforing freeing the struct.

Reviewed by: Heikki

r2543 | inaam | 2008-07-22 18:57:43 +0300 (Tue, 22 Jul 2008) | 7 lines
branches/5.1:

Removed UNIV_INLINE qualifier from btr_search_info_get_ref_count().
Otherwise compilation failed on non-debug builds.

Pointed by: Vasil
2008-12-14 12:25:33 -07: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 Applied InnoDB 5.1 snapshot ss787. 2006-09-05 03:52:15 +02: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 Applied innodb-5.1-ss1039 and innodb-5.1-ss1134 snapshots. 2007-01-04 19:51:34 -07:00
data0types.h Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
db0err.h Apply snapshot innodb-5.1-ss1989 2007-11-06 15:42:58 -07: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 Apply innodb-5.1-ss2360 snapshot 2008-03-27 02:40:45 +01: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-5.1-ss2360 snapshot 2008-03-27 02:40:45 +01: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 Applied innodb-5.1-ss594 snapshot. 2006-06-01 10:34:04 +04:00
fsp0fsp.h Apply snapshot innodb-51-ss1644 2007-07-24 19:34:31 -06:00
fsp0fsp.ic Changes to create storage directory for storage engines. 2005-04-26 18:19:54 -07:00
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 Apply snapshot innodb-5.1-ss1989 2007-11-06 15:42:58 -07:00
hash0hash.h Merge mysql.com:/home/kent/bk/tmp2/mysql-5.0-build 2007-01-15 10:37:27 +01:00
hash0hash.ic Applied innodb-5.1-ss269 snapshot. 2006-03-10 19:22:21 +03: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 Apply InnoDB snapshot innodb-5.1-ss1726. 2007-08-24 19:14:52 -06: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 Cherry-pick some changes from innodb-5.1-ss2479 snapshot. Includes fixes for 2008-08-19 18:37:41 -06:00
mach0data.ic Cherry-pick some changes from innodb-5.1-ss2479 snapshot. Includes fixes for 2008-08-19 18:37:41 -06: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 Apply the following InnoDB snapshots: 2007-03-22 15:59:35 -06:00
mem0mem.ic Apply snapshot innodb-5.1-ss1989 2007-11-06 15:42:58 -07: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 Applied InnoDB 5.1 snapshot ss787. 2006-09-05 03:52:15 +02:00
mtr0mtr.h Apply InnoDB snapshot ss923 2006-10-20 12:36:15 -06:00
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 Apply the following innodb-5.1-* snapshots: ss1489, ss1496, ss1550, ss1569. 2007-07-10 05:37:43 -06:00
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 Applied innodb-5.1-ss660 snapshot. 2006-07-26 13:28:51 +04: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 Applied innodb-5.1 snapshots ss799 and ss854 2006-09-21 01:39:09 -06:00
rem0rec.ic Apply snapshot innodb-5.1-ss1989 2007-11-06 15:42:58 -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 apply snapshot innodb-5.1-ss2387 2008-03-27 15:13:10 +01: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 Cherry-pick some changes from innodb-5.1-ss2479 snapshot. Includes fixes for 2008-08-19 18:37:41 -06:00
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 Applied InnoDB snapshot innodb-5.1-ss2298 2008-02-19 09:44:09 -07:00
sync0sync.ic Applied InnoDB snapshot innodb-5.1-ss2298 2008-02-19 09:44:09 -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 Applied innodb-5.1-ss492 snapshot. 2006-04-26 08:30:37 +04: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 Applied InnoDB 5.1 snapshot ss787. 2006-09-05 03:52:15 +02:00
trx0sys.h Applied innodb-5.1-ss269 snapshot. 2006-03-10 19:22:21 +03:00
trx0sys.ic Apply the following InnoDB snapshots: 2007-03-22 15:59:35 -06:00
trx0trx.h Apply InnoDB snapshot innodb-5.1-ss1751. 2007-08-25 03:55:38 -06:00
trx0trx.ic Applied InnoDB 5.1 snapshot ss787. 2006-09-05 03:52:15 +02:00
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 Apply innodb-5.1-ss2360 snapshot 2008-03-27 02:40:45 +01: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