summaryrefslogtreecommitdiff
path: root/storage
diff options
context:
space:
mode:
authorunknown <jonas@eel.(none)>2005-09-13 14:03:00 +0200
committerunknown <jonas@eel.(none)>2005-09-13 14:03:00 +0200
commitdca83978334cb2afac9a4911e7da9ba137539f72 (patch)
treeacec75e33babcc47a222e3c6e746bfbd11189d66 /storage
parent1d4723c380e8cb6c771009eb733bac960324544a (diff)
parent0260e3dcc16544d73ae2a3e8996fa97ad5d288dd (diff)
downloadmariadb-git-dca83978334cb2afac9a4911e7da9ba137539f72.tar.gz
Merge joreland@bk-internal.mysql.com:/home/bk/mysql-5.1
into eel.(none):/home/jonas/src/mysql-5.1-push sql/ha_ndbcluster.cc: Auto merged storage/ndb/src/common/portlib/NdbThread.c: Auto merged storage/ndb/src/mgmapi/mgmapi.cpp: Auto merged storage/ndb/test/include/NDBT_Test.hpp: Auto merged storage/ndb/test/ndbapi/Makefile.am: Auto merged storage/ndb/test/ndbapi/bank/Bank.cpp: Auto merged storage/ndb/test/ndbapi/bank/Bank.hpp: Auto merged storage/ndb/test/src/NDBT_Test.cpp: Auto merged storage/ndb/test/src/UtilTransactions.cpp: Auto merged
Diffstat (limited to 'storage')
-rw-r--r--storage/heap/hp_hash.c10
-rw-r--r--storage/ndb/include/util/Parser.hpp2
-rw-r--r--storage/ndb/src/mgmapi/mgmapi.cpp3
-rw-r--r--storage/ndb/src/mgmsrv/MgmtSrvr.cpp5
-rw-r--r--storage/ndb/src/ndbapi/SignalSender.cpp10
5 files changed, 17 insertions, 13 deletions
diff --git a/storage/heap/hp_hash.c b/storage/heap/hp_hash.c
index d643f776731..77f3cf6d80b 100644
--- a/storage/heap/hp_hash.c
+++ b/storage/heap/hp_hash.c
@@ -551,11 +551,13 @@ int hp_rec_key_cmp(HP_KEYDEF *keydef, const byte *rec1, const byte *rec2,
}
if (cs->mbmaxlen > 1)
{
+ uint safe_length1= char_length1;
+ uint safe_length2= char_length2;
uint char_length= seg->length / cs->mbmaxlen;
- char_length1= my_charpos(cs, pos1, pos1 + char_length1, char_length1);
- set_if_smaller(char_length1, seg->length);
- char_length2= my_charpos(cs, pos2, pos2 + char_length2, char_length2);
- set_if_smaller(char_length2, seg->length);
+ char_length1= my_charpos(cs, pos1, pos1 + char_length1, char_length);
+ set_if_smaller(char_length1, safe_length1);
+ char_length2= my_charpos(cs, pos2, pos2 + char_length2, char_length);
+ set_if_smaller(char_length2, safe_length2);
}
if (cs->coll->strnncollsp(seg->charset,
diff --git a/storage/ndb/include/util/Parser.hpp b/storage/ndb/include/util/Parser.hpp
index c117498e1ba..3baf7601a6c 100644
--- a/storage/ndb/include/util/Parser.hpp
+++ b/storage/ndb/include/util/Parser.hpp
@@ -285,7 +285,7 @@ template<class T>
inline
void
Parser<T>::setBreakOnInvalidArg(bool v){
- impl->m_breakOnInvalidArg;
+ impl->m_breakOnInvalidArg = v;
}
#endif
diff --git a/storage/ndb/src/mgmapi/mgmapi.cpp b/storage/ndb/src/mgmapi/mgmapi.cpp
index c10eb073855..8263e8cbc93 100644
--- a/storage/ndb/src/mgmapi/mgmapi.cpp
+++ b/storage/ndb/src/mgmapi/mgmapi.cpp
@@ -678,12 +678,10 @@ ndb_mgm_get_status(NdbMgmHandle handle)
Vector<BaseString> split;
tmp.split(split, ":");
if(split.size() != 2){
- abort();
return NULL;
}
if(!(split[0].trim() == "nodes")){
- abort();
return NULL;
}
@@ -731,7 +729,6 @@ ndb_mgm_get_status(NdbMgmHandle handle)
if(i+1 != noOfNodes){
free(state);
- abort();
return NULL;
}
diff --git a/storage/ndb/src/mgmsrv/MgmtSrvr.cpp b/storage/ndb/src/mgmsrv/MgmtSrvr.cpp
index fae0941beb8..d946b4af4a7 100644
--- a/storage/ndb/src/mgmsrv/MgmtSrvr.cpp
+++ b/storage/ndb/src/mgmsrv/MgmtSrvr.cpp
@@ -2521,10 +2521,7 @@ MgmtSrvr::startBackup(Uint32& backupId, int waitCompleted)
case GSN_NODE_FAILREP:{
const NodeFailRep * const rep =
CAST_CONSTPTR(NodeFailRep, signal->getDataPtr());
-#ifdef VM_TRACE
- ndbout_c("Node %d failed", rep->failNo);
-#endif
- if (rep->failNo == nodeId ||
+ if (NodeBitmask::get(rep->theNodes,nodeId) ||
waitCompleted == 1)
return 1326;
// wait for next signal
diff --git a/storage/ndb/src/ndbapi/SignalSender.cpp b/storage/ndb/src/ndbapi/SignalSender.cpp
index 6314361e55c..96feeb973a0 100644
--- a/storage/ndb/src/ndbapi/SignalSender.cpp
+++ b/storage/ndb/src/ndbapi/SignalSender.cpp
@@ -250,14 +250,22 @@ SignalSender::execNodeStatus(void* signalSender,
// node shutdown complete
s->header.theVerId_signalNumber = GSN_NF_COMPLETEREP;
NFCompleteRep *rep = (NFCompleteRep *)s->getDataPtrSend();
+ rep->blockNo = 0;
+ rep->nodeId = 0;
rep->failedNodeId = nodeId;
+ rep->unused = 0;
+ rep->from = 0;
}
else
{
// node failure
s->header.theVerId_signalNumber = GSN_NODE_FAILREP;
NodeFailRep *rep = (NodeFailRep *)s->getDataPtrSend();
- rep->failNo = nodeId;
+ rep->failNo = 0;
+ rep->masterNodeId = 0;
+ rep->noOfNodes = 1;
+ NodeBitmask::clear(rep->theNodes);
+ NodeBitmask::set(rep->theNodes,nodeId);
}
ss->m_jobBuffer.push_back(s);