summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorunknown <jonas@perch.ndb.mysql.com>2006-04-25 13:32:10 +0200
committerunknown <jonas@perch.ndb.mysql.com>2006-04-25 13:32:10 +0200
commitde513b1814b5e8152705d4350c730893d9c71065 (patch)
tree22540e5d84c05b22dc438d579c93e9f495171c96
parent3e3842fa2e4ecd6f1014f6e20282fe2c475a67a4 (diff)
downloadmariadb-git-de513b1814b5e8152705d4350c730893d9c71065.tar.gz
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
-rw-r--r--storage/ndb/src/kernel/blocks/backup/BackupInit.cpp2
-rw-r--r--storage/ndb/src/kernel/blocks/restore.cpp29
-rw-r--r--storage/ndb/src/kernel/blocks/restore.hpp1
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: