summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorunknown <jonas@perch.ndb.mysql.com>2008-01-30 08:09:56 +0100
committerunknown <jonas@perch.ndb.mysql.com>2008-01-30 08:09:56 +0100
commitec106ca8f1a6ee9971831aa760f228139ed2c76c (patch)
treeb67633e64b7252f55dfd219c8977562baaafa3b3
parent3dac6033c2b19a6cc06e114c92bba54726dd495b (diff)
downloadmariadb-git-ec106ca8f1a6ee9971831aa760f228139ed2c76c.tar.gz
ndb - bug#30172
Backup can assert with "big" table definitions Correct condition before fetching next meta-table Increase meta-buffer, to cope with atleast 2 tables ndb/src/kernel/blocks/backup/Backup.cpp: Correct condition, before fetching new meta-table ndb/src/kernel/blocks/backup/Backup.hpp: Make sure atleast 2 tables can fix
-rw-r--r--ndb/src/kernel/blocks/backup/Backup.cpp14
-rw-r--r--ndb/src/kernel/blocks/backup/Backup.hpp2
2 files changed, 9 insertions, 7 deletions
diff --git a/ndb/src/kernel/blocks/backup/Backup.cpp b/ndb/src/kernel/blocks/backup/Backup.cpp
index 70721bfca56..52ab11b8388 100644
--- a/ndb/src/kernel/blocks/backup/Backup.cpp
+++ b/ndb/src/kernel/blocks/backup/Backup.cpp
@@ -374,16 +374,18 @@ Backup::execCONTINUEB(Signal* signal)
ptr.p->files.getPtr(filePtr, ptr.p->ctlFilePtr);
FsBuffer & buf = filePtr.p->operation.dataBuffer;
- if(buf.getFreeSize() + buf.getMinRead() < buf.getUsableSize()) {
+ if(buf.getFreeSize() < buf.getMaxWrite()) {
jam();
TablePtr tabPtr LINT_SET_PTR;
c_tablePool.getPtr(tabPtr, Tdata2);
- DEBUG_OUT("Backup - Buffer full - " << buf.getFreeSize()
- << " + " << buf.getMinRead()
- << " < " << buf.getUsableSize()
- << " - tableId = " << tabPtr.p->tableId);
-
+ DEBUG_OUT("Backup - Buffer full - "
+ << buf.getFreeSize()
+ << " < " << buf.getMaxWrite()
+ << " (sz: " << buf.getUsableSize()
+ << " getMinRead: " << buf.getMinRead()
+ << ") - tableId = " << tabPtr.p->tableId);
+
signal->theData[0] = BackupContinueB::BUFFER_FULL_META;
signal->theData[1] = Tdata1;
signal->theData[2] = Tdata2;
diff --git a/ndb/src/kernel/blocks/backup/Backup.hpp b/ndb/src/kernel/blocks/backup/Backup.hpp
index 8b0c27727b0..e67d8f09f0e 100644
--- a/ndb/src/kernel/blocks/backup/Backup.hpp
+++ b/ndb/src/kernel/blocks/backup/Backup.hpp
@@ -518,7 +518,7 @@ public:
Uint32 m_diskless;
STATIC_CONST(NO_OF_PAGES_META_FILE =
- (MAX_WORDS_META_FILE + BACKUP_WORDS_PER_PAGE - 1) /
+ (2*MAX_WORDS_META_FILE + BACKUP_WORDS_PER_PAGE - 1) /
BACKUP_WORDS_PER_PAGE);
/**