diff options
author | unknown <heikki@hundin.mysql.fi> | 2003-01-13 15:52:39 +0200 |
---|---|---|
committer | unknown <heikki@hundin.mysql.fi> | 2003-01-13 15:52:39 +0200 |
commit | d0551ec55be01abbefdb244daf8dc074506276f9 (patch) | |
tree | 86b36cbd88f1b66a7c790eb9c632247d03023c72 /innobase/row | |
parent | eaebef2ab64b65a275c6ddeb5864326d2e3b0571 (diff) | |
download | mariadb-git-d0551ec55be01abbefdb244daf8dc074506276f9.tar.gz |
btr0cur.h, btr0btr.h, btr0btr.c, btr0cur.c, row0purge.c:
Fix a hang associated with an index tree of height 1 and purging of BLOB fields from it
innobase/row/row0purge.c:
Fix a hang associated with an index tree of height 1 and purging of BLOB fields from it
innobase/btr/btr0cur.c:
Fix a hang associated with an index tree of height 1 and purging of BLOB fields from it
innobase/btr/btr0btr.c:
Fix a hang associated with an index tree of height 1 and purging of BLOB fields from it
innobase/include/btr0btr.h:
Fix a hang associated with an index tree of height 1 and purging of BLOB fields from it
innobase/include/btr0cur.h:
Fix a hang associated with an index tree of height 1 and purging of BLOB fields from it
Diffstat (limited to 'innobase/row')
-rw-r--r-- | innobase/row/row0purge.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/innobase/row/row0purge.c b/innobase/row/row0purge.c index b64003f22d4..104d71eda2d 100644 --- a/innobase/row/row0purge.c +++ b/innobase/row/row0purge.c @@ -429,7 +429,18 @@ skip_secondaries: index = dict_table_get_first_index(node->table); mtr_x_lock(dict_tree_get_lock(index->tree), &mtr); + + /* NOTE: we must also acquire an X-latch to the + root page of the tree. We will need it when we + free pages from the tree. If the tree is of height 1, + the tree X-latch does NOT protect the root page, + because it is also a leaf page. Since we will have a + latch on an undo log page, we would break the + latching order if we would only later latch the + root page of such a tree! */ + btr_root_get(index->tree, &mtr); + /* We assume in purge of externally stored fields that the space id of the undo log record is 0! */ |