diff options
author | unknown <jonas@perch.ndb.mysql.com> | 2008-01-30 08:09:56 +0100 |
---|---|---|
committer | unknown <jonas@perch.ndb.mysql.com> | 2008-01-30 08:09:56 +0100 |
commit | ec106ca8f1a6ee9971831aa760f228139ed2c76c (patch) | |
tree | b67633e64b7252f55dfd219c8977562baaafa3b3 | |
parent | 3dac6033c2b19a6cc06e114c92bba54726dd495b (diff) | |
download | mariadb-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.cpp | 14 | ||||
-rw-r--r-- | ndb/src/kernel/blocks/backup/Backup.hpp | 2 |
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); /** |