summaryrefslogtreecommitdiff
path: root/storage/xtradb/btr
diff options
context:
space:
mode:
authorJan Lindström <jplindst@mariadb.org>2015-02-13 11:49:31 +0200
committerJan Lindström <jplindst@mariadb.org>2015-02-13 11:49:31 +0200
commit454beee5fbd9da8e87a54b46ea716679693361bd (patch)
tree9ef1493fdb62e1526189624051b93b332ae92113 /storage/xtradb/btr
parent356ae629f0b8ecd5e4b277bdaedf6d55ce09a603 (diff)
downloadmariadb-git-454beee5fbd9da8e87a54b46ea716679693361bd.tar.gz
MDEV-6288 :Innodb causes server crash after disk full, then can't ALTER TABLE any more
Fix try to avoid unnecessary crashes when disk full situation is reached on alter table.
Diffstat (limited to 'storage/xtradb/btr')
-rw-r--r--storage/xtradb/btr/btr0btr.cc6
1 files changed, 6 insertions, 0 deletions
diff --git a/storage/xtradb/btr/btr0btr.cc b/storage/xtradb/btr/btr0btr.cc
index d240188e772..1da487f1400 100644
--- a/storage/xtradb/btr/btr0btr.cc
+++ b/storage/xtradb/btr/btr0btr.cc
@@ -3097,6 +3097,12 @@ func_start:
/* 2. Allocate a new page to the index */
new_block = btr_page_alloc(cursor->index, hint_page_no, direction,
btr_page_get_level(page, mtr), mtr, mtr);
+
+ /* Play safe, if new page is not allocated */
+ if (!new_block) {
+ return(rec);
+ }
+
new_page = buf_block_get_frame(new_block);
new_page_zip = buf_block_get_page_zip(new_block);
btr_page_create(new_block, new_page_zip, cursor->index,