#At file:///home/marty/MySQL/mysql-5.1-telco-7.0/
3713 Martin Skold 2010-08-20 [merge]
Merge
modified:
storage/ndb/include/ndb_global.h
storage/ndb/src/common/util/ndb_init.cpp
storage/ndb/src/kernel/blocks/dbacc/DbaccMain.cpp
storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp
storage/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp
storage/ndb/src/kernel/blocks/dbtc/DbtcMain.cpp
storage/ndb/src/kernel/blocks/dbtup/DbtupCommit.cpp
storage/ndb/src/kernel/blocks/dbtup/DbtupDebug.cpp
storage/ndb/src/kernel/blocks/dbtup/DbtupGen.cpp
storage/ndb/src/kernel/blocks/dbtux/Dbtux.hpp
storage/ndb/src/kernel/blocks/dbtux/DbtuxMeta.cpp
storage/ndb/src/kernel/blocks/pgman.cpp
storage/ndb/src/kernel/error/ErrorReporter.cpp
storage/ndb/src/kernel/error/ErrorReporter.hpp
storage/ndb/src/kernel/vm/SimulatedBlock.hpp
storage/ndb/src/mgmapi/mgmapi.cpp
storage/ndb/src/mgmsrv/MgmtSrvr.cpp
storage/ndb/src/ndbapi/NdbEventOperationImpl.cpp
storage/ndb/test/include/NDBT_Table.hpp
storage/ndb/test/ndbapi/test_event.cpp
storage/ndb/test/ndbapi/test_event_merge.cpp
=== modified file 'storage/ndb/include/ndb_global.h'
--- a/storage/ndb/include/ndb_global.h 2010-08-20 08:35:41 +0000
+++ b/storage/ndb/include/ndb_global.h 2010-08-20 11:10:25 +0000
@@ -215,6 +215,15 @@ extern "C" {
#define NDB_ASSERT_POD(x)
#endif
+/**
+ * __attribute__((noreturn)) was introduce in gcc 2.5
+ */
+#if (GCC_VERSION >= 2005)
+#define ATTRIBUTE_NORETURN __attribute__((noreturn))
+#else
+#define ATTRIBUTE_NORETURN
+#endif
+
/*
* require is like a normal assert, only it's always on (eg. in release)
*/
=== modified file 'storage/ndb/src/common/util/ndb_init.cpp'
--- a/storage/ndb/src/common/util/ndb_init.cpp 2009-09-09 12:34:25 +0000
+++ b/storage/ndb/src/common/util/ndb_init.cpp 2010-08-20 11:10:25 +0000
@@ -54,7 +54,8 @@ ndb_init_internal()
{
{
const char* err = "ndb_init() failed - exit\n";
- write(2, err, strlen(err));
+ int res = write(2, err, strlen(err));
+ (void)res;
exit(1);
}
}
@@ -76,7 +77,8 @@ ndb_init()
if (my_init())
{
const char* err = "my_init() failed - exit\n";
- write(2, err, strlen(err));
+ int res = write(2, err, strlen(err));
+ (void)res;
exit(1);
}
ndb_init_internal();
=== modified file 'storage/ndb/src/kernel/blocks/dbacc/DbaccMain.cpp'
--- a/storage/ndb/src/kernel/blocks/dbacc/DbaccMain.cpp 2010-08-17 11:47:55 +0000
+++ b/storage/ndb/src/kernel/blocks/dbacc/DbaccMain.cpp 2010-08-20 11:10:25 +0000
@@ -7109,7 +7109,9 @@ void Dbacc::putOpScanLockQue()
numLockedOpsBefore++;
ptrCheckGuard(tmpOp, coprecsize, operationrec);
if (tmpOp.p->nextOp == RNIL)
+ {
ndbrequire(tmpOp.i == scanPtr.p->scanLastLockedOp);
+ }
tmpOp.i = tmpOp.p->nextOp;
}
ndbrequire(numLockedOpsBefore==scanPtr.p->scanLockHeld);
@@ -7484,7 +7486,9 @@ void Dbacc::takeOutScanLockQueue(Uint32
numLockedOps++;
ptrCheckGuard(tmpOp, coprecsize, operationrec);
if (tmpOp.p->nextOp == RNIL)
+ {
ndbrequire(tmpOp.i == TscanPtr.p->scanLastLockedOp);
+ }
tmpOp.i = tmpOp.p->nextOp;
}
ndbrequire(numLockedOps==TscanPtr.p->scanLockHeld);
=== modified file 'storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp'
--- a/storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp 2010-08-17 11:47:55 +0000
+++ b/storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp 2010-08-20 11:33:06 +0000
@@ -24662,13 +24662,12 @@ Dbdict::check_partial_trans_abort_prepar
ndbout_c("Checking node %u(%u), %u(%u)<%u", nodePtr.i, nodePtr.p->recoveryState, nodePtr.p->start_op, nodePtr.p->start_op_state, op_ptr.p->op_key);
#endif
if (nodePtr.p->recoveryState == NodeRecord::RS_PARTIAL_ROLLBACK &&
- (nodePtr.p->start_op_state == SchemaOp::OS_PARSED &&
+ ((nodePtr.p->start_op_state == SchemaOp::OS_PARSED &&
nodePtr.p->start_op <= op_ptr.p->op_key) ||
- (nodePtr.p->start_op_state == SchemaOp::OS_PREPARED &&
+ (nodePtr.p->start_op_state == SchemaOp::OS_PREPARED &&
nodePtr.p->start_op < op_ptr.p->op_key) ||
- (nodePtr.p->start_op_state == SchemaOp::OS_ABORTED_PREPARE &&
- nodePtr.p->start_op >= op_ptr.p->op_key))
-
+ (nodePtr.p->start_op_state == SchemaOp::OS_ABORTED_PREPARE &&
+ nodePtr.p->start_op >= op_ptr.p->op_key)))
{
#ifdef VM_TRACE
ndbout_c("Skip aborting operation %u on node %u", op_ptr.p->op_key, i);
@@ -27246,9 +27245,9 @@ Dbdict::get_default_fragments(Uint32 ext
SignalT<25> signalT;
bzero(&signalT, sizeof(signalT));
- Signal* signal = (Signal*)&signalT;
+ Signal* signal = new (&signalT) Signal(0); // placement new
- CheckNodeGroups * sd = (CheckNodeGroups*)signal->getDataPtrSend();
+ CheckNodeGroups * sd = CAST_PTR(CheckNodeGroups, signal->getDataPtrSend());
sd->extraNodeGroups = extranodegroups;
sd->requestType = CheckNodeGroups::Direct | CheckNodeGroups::GetDefaultFragments;
EXECUTE_DIRECT(DBDIH, GSN_CHECKNODEGROUPSREQ, signal,
@@ -28108,7 +28107,9 @@ void
Dbdict::check_consistency_trigger(TriggerRecordPtr triggerPtr)
{
if (! (triggerPtr.p->triggerState == TriggerRecord::TS_FAKE_UPGRADE))
+ {
ndbrequire(triggerPtr.p->triggerState == TriggerRecord::TS_ONLINE);
+ }
ndbrequire(triggerPtr.p->triggerId == triggerPtr.i);
TableRecordPtr tablePtr;
@@ -28130,7 +28131,9 @@ Dbdict::check_consistency_trigger(Trigge
switch (ti.triggerEvent) {
case TriggerEvent::TE_CUSTOM:
if (! (triggerPtr.p->triggerState == TriggerRecord::TS_FAKE_UPGRADE))
+ {
ndbrequire(triggerPtr.i == indexPtr.p->triggerId);
+ }
break;
default:
ndbrequire(false);
=== modified file 'storage/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp'
--- a/storage/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp 2010-08-17 11:47:55 +0000
+++ b/storage/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp 2010-08-20 11:10:25 +0000
@@ -6424,8 +6424,10 @@ void Dblqh::packLqhkeyreqLab(Signal* sig
else
{
if (fragptr.p->m_copy_started_state != Fragrecord::AC_IGNORED)
+ {
ndbassert(LqhKeyReq::getOperation(Treqinfo) != ZINSERT ||
get_node_status(nextNodeId) != ZNODE_UP);
+ }
}
UintR TreadLenAiInd = (regTcPtr->readlenAi == 0 ? 0 : 1);
=== modified file 'storage/ndb/src/kernel/blocks/dbtc/DbtcMain.cpp'
--- a/storage/ndb/src/kernel/blocks/dbtc/DbtcMain.cpp 2010-08-17 11:47:55 +0000
+++ b/storage/ndb/src/kernel/blocks/dbtc/DbtcMain.cpp 2010-08-20 11:10:25 +0000
@@ -6010,8 +6010,10 @@ void Dbtc::clearCommitAckMarker(ApiConne
{
const Uint32 commitAckMarker = regTcPtr->commitAckMarker;
if (regApiPtr->commitAckMarker == RNIL)
+ {
ndbassert(commitAckMarker == RNIL);
-
+ }
+
if(commitAckMarker != RNIL)
{
jam();
=== modified file 'storage/ndb/src/kernel/blocks/dbtup/DbtupCommit.cpp'
--- a/storage/ndb/src/kernel/blocks/dbtup/DbtupCommit.cpp 2010-06-10 07:21:34 +0000
+++ b/storage/ndb/src/kernel/blocks/dbtup/DbtupCommit.cpp 2010-08-20 11:10:25 +0000
@@ -753,7 +753,9 @@ skip_disk:
{
jam();
if (get_page)
+ {
ndbassert(tuple_ptr->m_header_bits & Tuple_header::DISK_PART);
+ }
dealloc_tuple(signal, gci_hi, page.p, tuple_ptr,
regOperPtr.p, regFragPtr.p, regTabPtr.p);
}
=== modified file 'storage/ndb/src/kernel/blocks/dbtup/DbtupDebug.cpp'
--- a/storage/ndb/src/kernel/blocks/dbtup/DbtupDebug.cpp 2010-08-17 11:47:55 +0000
+++ b/storage/ndb/src/kernel/blocks/dbtup/DbtupDebug.cpp 2010-08-20 11:10:25 +0000
@@ -360,7 +360,9 @@ Dbtup::execDUMP_STATE_ORD(Signal* signal
}
if(alloc == 1 && free > 0)
+ {
ndbrequire(chunk.pageCount == alloc);
+ }
}
break;
}
=== modified file 'storage/ndb/src/kernel/blocks/dbtup/DbtupGen.cpp'
--- a/storage/ndb/src/kernel/blocks/dbtup/DbtupGen.cpp 2010-06-15 15:08:55 +0000
+++ b/storage/ndb/src/kernel/blocks/dbtup/DbtupGen.cpp 2010-08-20 11:26:54 +0000
@@ -68,9 +68,9 @@ Dbtup::Dbtup(Block_context& ctx, Uint32
c_storedProcPool(),
c_buildIndexList(c_buildIndexPool),
c_undo_buffer(&ctx.m_mm),
- f_undo_done(true),
m_pages_allocated(0),
- m_pages_allocated_max(0)
+ m_pages_allocated_max(0),
+ f_undo_done(true)
{
BLOCK_CONSTRUCTOR(Dbtup);
=== modified file 'storage/ndb/src/kernel/blocks/dbtux/Dbtux.hpp'
--- a/storage/ndb/src/kernel/blocks/dbtux/Dbtux.hpp 2010-03-15 21:27:50 +0000
+++ b/storage/ndb/src/kernel/blocks/dbtux/Dbtux.hpp 2010-08-20 11:10:25 +0000
@@ -1137,15 +1137,27 @@ Dbtux::NodeHandle::getNodeScan()
inline void
Dbtux::NodeHandle::setLink(unsigned i, TupLoc loc)
{
- ndbrequire(i <= 2);
- m_node->m_link[i] = loc;
+ if (likely(i <= 2))
+ {
+ m_node->m_link[i] = loc;
+ }
+ else
+ {
+ ndbrequire(false);
+ }
}
inline void
Dbtux::NodeHandle::setSide(unsigned i)
{
- ndbrequire(i <= 2);
- m_node->m_side = i;
+ if (likely(i <= 2))
+ {
+ m_node->m_side = i;
+ }
+ else
+ {
+ ndbrequire(false);
+ }
}
inline void
=== modified file 'storage/ndb/src/kernel/blocks/dbtux/DbtuxMeta.cpp'
--- a/storage/ndb/src/kernel/blocks/dbtux/DbtuxMeta.cpp 2010-06-15 15:08:55 +0000
+++ b/storage/ndb/src/kernel/blocks/dbtux/DbtuxMeta.cpp 2010-08-20 11:26:54 +0000
@@ -299,8 +299,8 @@ Dbtux::execTUXFRAGREQ(Signal* signal)
}
#endif
// error inserts
- if (ERROR_INSERTED(12001) && fragNo == 0 ||
- ERROR_INSERTED(12002) && fragNo == 1) {
+ if ((ERROR_INSERTED(12001) && fragNo == 0) ||
+ (ERROR_INSERTED(12002) && fragNo == 1)) {
jam();
errorCode = (TuxFragRef::ErrorCode)1;
CLEAR_ERROR_INSERT_VALUE;
=== modified file 'storage/ndb/src/kernel/blocks/pgman.cpp'
--- a/storage/ndb/src/kernel/blocks/pgman.cpp 2010-07-04 16:28:36 +0000
+++ b/storage/ndb/src/kernel/blocks/pgman.cpp 2010-08-20 11:10:25 +0000
@@ -2312,19 +2312,19 @@ Pgman::verify_page_entry(Ptr<Page_entry>
Uint32 no = get_sublist_no(state);
switch (no) {
case Page_entry::SL_BIND:
- ndbrequire(! pagein && ! pageout || dump_page_lists(ptrI));
+ ndbrequire((! pagein && ! pageout) || dump_page_lists(ptrI));
break;
case Page_entry::SL_MAP:
- ndbrequire(! pagein && ! pageout || dump_page_lists(ptrI));
+ ndbrequire((! pagein && ! pageout) || dump_page_lists(ptrI));
break;
case Page_entry::SL_MAP_IO:
- ndbrequire(pagein && ! pageout || dump_page_lists(ptrI));
+ ndbrequire((pagein && ! pageout) || dump_page_lists(ptrI));
break;
case Page_entry::SL_CALLBACK:
- ndbrequire(! pagein && ! pageout || dump_page_lists(ptrI));
+ ndbrequire((! pagein && ! pageout) || dump_page_lists(ptrI));
break;
case Page_entry::SL_CALLBACK_IO:
- ndbrequire(! pagein && pageout || dump_page_lists(ptrI));
+ ndbrequire((! pagein && pageout) || dump_page_lists(ptrI));
break;
case Page_entry::SL_BUSY:
break;
@@ -2396,7 +2396,9 @@ Pgman::verify_page_lists()
Page_state state = ptr.p->m_state;
ndbrequire(state & Page_entry::ONSTACK || dump_page_lists(ptr.i));
if (! pl_stack.hasPrev(ptr))
+ {
ndbrequire(state & Page_entry::HOT || dump_page_lists(ptr.i));
+ }
}
for (pl_queue.first(ptr); ptr.i != RNIL; pl_queue.next(ptr))
=== modified file 'storage/ndb/src/kernel/error/ErrorReporter.cpp'
--- a/storage/ndb/src/kernel/error/ErrorReporter.cpp 2010-03-16 09:25:26 +0000
+++ b/storage/ndb/src/kernel/error/ErrorReporter.cpp 2010-08-20 11:10:25 +0000
@@ -242,6 +242,7 @@ ErrorReporter::handleError(int messageID
g_eventLogger->info(objRef);
NdbShutdown(messageID, nst);
+ exit(1); // kill warning
}
int
=== modified file 'storage/ndb/src/kernel/error/ErrorReporter.hpp'
--- a/storage/ndb/src/kernel/error/ErrorReporter.hpp 2010-03-16 09:25:26 +0000
+++ b/storage/ndb/src/kernel/error/ErrorReporter.hpp 2010-08-20 11:10:25 +0000
@@ -29,12 +29,14 @@ class ErrorReporter
public:
static void handleAssert(const char* message,
const char* file,
- int line, int ec = NDBD_EXIT_PRGERR) __attribute__((__noreturn__));
+ int line, int ec = NDBD_EXIT_PRGERR)
+ ATTRIBUTE_NORETURN;
static void handleError(int faultID,
const char* problemData,
const char* objRef,
- enum NdbShutdownType = NST_ErrorHandler);
+ enum NdbShutdownType = NST_ErrorHandler)
+ ATTRIBUTE_NORETURN;
static void formatMessage(int thr_no,
Uint32 num_threads, int faultID,
=== modified file 'storage/ndb/src/kernel/vm/SimulatedBlock.hpp'
--- a/storage/ndb/src/kernel/vm/SimulatedBlock.hpp 2010-01-25 16:22:52 +0000
+++ b/storage/ndb/src/kernel/vm/SimulatedBlock.hpp 2010-08-20 11:10:25 +0000
@@ -594,9 +594,11 @@ protected:
* If the cause of the shutdown is known use extradata to add an
* errormessage describing the problem
*/
- void progError(int line, int err_code, const char* extradata=NULL) const ;
+ void progError(int line, int err_code, const char* extradata=NULL) const
+ ATTRIBUTE_NORETURN;
private:
- void signal_error(Uint32, Uint32, Uint32, const char*, int) const ;
+ void signal_error(Uint32, Uint32, Uint32, const char*, int) const
+ ATTRIBUTE_NORETURN;
const NodeId theNodeId;
const BlockNumber theNumber;
const Uint32 theInstance;
=== modified file 'storage/ndb/src/mgmapi/mgmapi.cpp'
--- a/storage/ndb/src/mgmapi/mgmapi.cpp 2010-08-20 08:35:41 +0000
+++ b/storage/ndb/src/mgmapi/mgmapi.cpp 2010-08-20 11:10:25 +0000
@@ -385,7 +385,7 @@ ndb_mgm_call(NdbMgmHandle handle,
SocketOutputStream out(handle->socket, handle->timeout);
SocketInputStream in(handle->socket, handle->timeout);
- out.println(cmd);
+ out.println("%s", cmd);
#ifdef MGMAPI_LOG
/**
* Print command to log file
=== modified file 'storage/ndb/src/mgmsrv/MgmtSrvr.cpp'
--- a/storage/ndb/src/mgmsrv/MgmtSrvr.cpp 2010-08-13 11:14:26 +0000
+++ b/storage/ndb/src/mgmsrv/MgmtSrvr.cpp 2010-08-20 10:59:14 +0000
@@ -53,7 +53,7 @@
#include <NdbConfig.h>
#include <NdbAutoPtr.hpp>
-
+#include <NdbDir.hpp>
#include <ndberror.h>
#include <mgmapi.h>
@@ -274,28 +274,6 @@ MgmtSrvr::MgmtSrvr(const MgmtOpts& opts)
}
-static bool
-create_directory(const char* dir)
-{
-#ifdef __WIN__
- if (CreateDirectory(dir, NULL) == 0)
- {
- g_eventLogger->warning("Failed to create directory '%s', error: %d",
- dir, GetLastError());
- return false;
- }
-#else
- if (mkdir(dir, S_IRUSR | S_IWUSR | S_IXUSR ) != 0)
- {
- g_eventLogger->warning("Failed to create directory '%s', error: %d",
- dir, errno);
- return false;
- }
-#endif
- return true;
-}
-
-
/*
check_configdir
@@ -329,7 +307,7 @@ MgmtSrvr::check_configdir() const
"does not exist. Trying to create it...",
MYSQLCLUSTERDIR);
- if (!create_directory(MYSQLCLUSTERDIR) ||
+ if (!NdbDir::create(MYSQLCLUSTERDIR) ||
access(MYSQLCLUSTERDIR, F_OK))
{
g_eventLogger->error("Could not create directory '%s'. " \
=== modified file 'storage/ndb/src/ndbapi/NdbEventOperationImpl.cpp'
--- a/storage/ndb/src/ndbapi/NdbEventOperationImpl.cpp 2010-03-12 11:56:09 +0000
+++ b/storage/ndb/src/ndbapi/NdbEventOperationImpl.cpp 2010-08-20 11:26:54 +0000
@@ -2169,7 +2169,7 @@ NdbEventBuffer::handle_change_nodegroup(
m_total_buckets += cnt;
- pos = pos = (pos + 1) & mask;
+ pos = (pos + 1) & mask;
for (; pos != maxpos; pos = (pos + 1) & mask)
{
assert(array[pos] > gci);
@@ -2228,7 +2228,7 @@ NdbEventBuffer::handle_change_nodegroup(
m_total_buckets -= cnt;
- pos = pos = (pos + 1) & mask;
+ pos = (pos + 1) & mask;
for (; pos != maxpos; pos = (pos + 1) & mask)
{
assert(array[pos] > gci);
=== modified file 'storage/ndb/test/include/NDBT_Table.hpp'
--- a/storage/ndb/test/include/NDBT_Table.hpp 2010-04-29 14:52:05 +0000
+++ b/storage/ndb/test/include/NDBT_Table.hpp 2010-08-20 11:10:25 +0000
@@ -76,6 +76,7 @@ public:
// validate() might cause initialization order problem with charset
NdbError error;
int ret = aggregate(error);
+ (void)ret;
assert(ret == 0);
}
=== modified file 'storage/ndb/test/ndbapi/test_event.cpp'
--- a/storage/ndb/test/ndbapi/test_event.cpp 2010-06-17 05:20:22 +0000
+++ b/storage/ndb/test/ndbapi/test_event.cpp 2010-08-20 11:10:25 +0000
@@ -319,8 +319,11 @@ eventOperation(Ndb* pNdb, const NdbDicti
}
g_info << endl;
}
- } else
+ }
+ else
+ {
;//printf("timed out\n");
+ }
}
g_info << "dropping event operation" << endl;
=== modified file 'storage/ndb/test/ndbapi/test_event_merge.cpp'
--- a/storage/ndb/test/ndbapi/test_event_merge.cpp 2010-04-30 09:09:19 +0000
+++ b/storage/ndb/test/ndbapi/test_event_merge.cpp 2010-08-20 11:10:25 +0000
@@ -1545,8 +1545,8 @@ makeops(Run& r)
break;
do {
optype = (Op::Type)urandom(g_optypes);
- } while (tot_op->type == Op::NUL &&
- (optype == Op::DEL || optype == Op::UPD) ||
+ } while ((tot_op->type == Op::NUL &&
+ (optype == Op::DEL || optype == Op::UPD)) ||
(tot_op->type == Op::INS && optype == Op::INS));
} else {
const char* str = g_opstringpart[g_loop % g_opstringparts];
@@ -1807,7 +1807,7 @@ cmppostpre(Run& r)
for (i = 0; i < ncol(); i++) {
const Col& c = getcol(i);
bool eq =
- d[0].ind[i] == 1 && d[1].ind[i] == 1 ||
+ (d[0].ind[i] == 1 && d[1].ind[i] == 1) ||
(d[0].ind[i] == 0 && d[1].ind[i] == 0 && cmpcol(c, d[0], d[1])== 0);
if (eq) {
d[0].ppeq |= (1 << i);
| Thread |
|---|
| • bzr commit into mysql-5.1-telco-7.0 branch (Martin.Skold:3713) | Martin Skold | 20 Aug |