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
parent f4d6dd71
...@@ -374,15 +374,17 @@ Backup::execCONTINUEB(Signal* signal) ...@@ -374,15 +374,17 @@ Backup::execCONTINUEB(Signal* signal)
ptr.p->files.getPtr(filePtr, ptr.p->ctlFilePtr); ptr.p->files.getPtr(filePtr, ptr.p->ctlFilePtr);
FsBuffer & buf = filePtr.p->operation.dataBuffer; FsBuffer & buf = filePtr.p->operation.dataBuffer;
if(buf.getFreeSize() + buf.getMinRead() < buf.getUsableSize()) { if(buf.getFreeSize() < buf.getMaxWrite()) {
jam(); jam();
TablePtr tabPtr LINT_SET_PTR; TablePtr tabPtr LINT_SET_PTR;
c_tablePool.getPtr(tabPtr, Tdata2); c_tablePool.getPtr(tabPtr, Tdata2);
DEBUG_OUT("Backup - Buffer full - " << buf.getFreeSize() DEBUG_OUT("Backup - Buffer full - "
<< " + " << buf.getMinRead() << buf.getFreeSize()
<< " < " << buf.getUsableSize() << " < " << buf.getMaxWrite()
<< " - tableId = " << tabPtr.p->tableId); << " (sz: " << buf.getUsableSize()
<< " getMinRead: " << buf.getMinRead()
<< ") - tableId = " << tabPtr.p->tableId);
signal->theData[0] = BackupContinueB::BUFFER_FULL_META; signal->theData[0] = BackupContinueB::BUFFER_FULL_META;
signal->theData[1] = Tdata1; signal->theData[1] = Tdata1;
......
...@@ -518,7 +518,7 @@ public: ...@@ -518,7 +518,7 @@ public:
Uint32 m_diskless; Uint32 m_diskless;
STATIC_CONST(NO_OF_PAGES_META_FILE = 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); BACKUP_WORDS_PER_PAGE);
/** /**
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment