From de513b1814b5e8152705d4350c730893d9c71065 Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 25 Apr 2006 13:32:10 +0200 Subject: ndb - 1) relax version check for restore block since no changes has happend since 5.1.6 and improve error message on check failure 2) improve lcp/backup max write size... storage/ndb/src/kernel/blocks/backup/BackupInit.cpp: Increase max write size to 256k (currently not configurable...) storage/ndb/src/kernel/blocks/restore.cpp: Relax version check for restore block since no changes has happend since 5.1.6 storage/ndb/src/kernel/blocks/restore.hpp: Relax version check for restore block since no changes has happend since 5.1.6 --- .../ndb/src/kernel/blocks/backup/BackupInit.cpp | 2 +- storage/ndb/src/kernel/blocks/restore.cpp | 29 +++++++++++++++++++--- storage/ndb/src/kernel/blocks/restore.hpp | 1 + 3 files changed, 27 insertions(+), 5 deletions(-) diff --git a/storage/ndb/src/kernel/blocks/backup/BackupInit.cpp b/storage/ndb/src/kernel/blocks/backup/BackupInit.cpp index b22cd51e61d..45727d39937 100644 --- a/storage/ndb/src/kernel/blocks/backup/BackupInit.cpp +++ b/storage/ndb/src/kernel/blocks/backup/BackupInit.cpp @@ -171,7 +171,7 @@ Backup::execREAD_CONFIG_REQ(Signal* signal) c_defaults.m_logBufferSize = szLogBuf; c_defaults.m_dataBufferSize = szDataBuf; c_defaults.m_minWriteSize = szWrite; - c_defaults.m_maxWriteSize = szWrite; + c_defaults.m_maxWriteSize = 256*1024; c_defaults.m_lcp_buffer_size = szDataBuf; diff --git a/storage/ndb/src/kernel/blocks/restore.cpp b/storage/ndb/src/kernel/blocks/restore.cpp index ce38af2a64f..a8b3ebb17f4 100644 --- a/storage/ndb/src/kernel/blocks/restore.cpp +++ b/storage/ndb/src/kernel/blocks/restore.cpp @@ -547,9 +547,10 @@ Restore::restore_next(Signal* signal, FilePtr file_ptr) parse_gcp_entry(signal, file_ptr, data, len); break; case 0x4e444242: // 'NDBB' - if(ntohl(* (data+2)) != NDB_VERSION) - parse_error(signal, file_ptr, __LINE__, ntohl(* (data+2))); - break; + if (check_file_version(signal, ntohl(* (data+2))) == 0) + { + break; + } default: parse_error(signal, file_ptr, __LINE__, ntohl(* data)); } @@ -719,7 +720,7 @@ Restore::parse_file_header(Signal* signal, return; } - if(ntohl(fh->NdbVersion) != NDB_VERSION) + if (check_file_version(signal, ntohl(fh->NdbVersion))) { parse_error(signal, file_ptr, __LINE__, ntohl(fh->NdbVersion)); return; @@ -1227,3 +1228,23 @@ operator << (NdbOut& ndbout, const Restore::Column& col) return ndbout; } + +int +Restore::check_file_version(Signal* signal, Uint32 file_version) +{ + if (file_version < MAKE_VERSION(5,1,6)) + { + char buf[255]; + char verbuf[255]; + getVersionString(file_version, 0, verbuf, sizeof(verbuf)); + BaseString::snprintf(buf, sizeof(buf), + "Unsupported version of LCP files found on disk, " + " found: %s", verbuf); + + progError(__LINE__, + NDBD_EXIT_SR_RESTARTCONFLICT, + buf); + return -1; + } + return 0; +} diff --git a/storage/ndb/src/kernel/blocks/restore.hpp b/storage/ndb/src/kernel/blocks/restore.hpp index 02b204155ab..609040e0280 100644 --- a/storage/ndb/src/kernel/blocks/restore.hpp +++ b/storage/ndb/src/kernel/blocks/restore.hpp @@ -140,6 +140,7 @@ private: Uint32 calulate_hash(Uint32 tableId, const Uint32 *src); void parse_error(Signal*, FilePtr, Uint32 line, Uint32 extra); + int check_file_version(Signal*, Uint32 file_version); public: private: -- cgit v1.2.1