3248 Jonas Oreland 2010-08-12
ndb - csc47713 - add lots of debugging printouts to try to track spurious GCP stop (COPY_GCI) (commit only to autotest)
modified:
storage/ndb/src/kernel/blocks/dbdih/DbdihMain.cpp
3247 Jonas Oreland 2010-08-11 [merge]
ndb - merge 63-main
modified:
storage/ndb/include/portlib/NdbTCP.h
storage/ndb/include/portlib/ndb_socket_poller.h
storage/ndb/src/common/transporter/TCP_Transporter.cpp
storage/ndb/src/common/transporter/TransporterRegistry.cpp
storage/ndb/src/common/util/OutputStream.cpp
storage/ndb/src/common/util/socket_io.cpp
storage/ndb/test/tools/log_listner.cpp
storage/ndb/tools/waiter.cpp
=== modified file 'storage/ndb/src/kernel/blocks/dbdih/DbdihMain.cpp'
--- a/storage/ndb/src/kernel/blocks/dbdih/DbdihMain.cpp 2010-07-14 11:01:54 +0000
+++ b/storage/ndb/src/kernel/blocks/dbdih/DbdihMain.cpp 2010-08-12 08:39:21 +0000
@@ -713,7 +713,7 @@ done:
c_copyGCISlave.m_expectedNextWord += CopyGCIReq::DATA_SIZE;
return;
}
-
+
if (cmasterdihref != reference())
{
jam();
@@ -732,6 +732,14 @@ done:
c_copyGCISlave.m_senderRef = signal->senderBlockRef();
c_copyGCISlave.m_senderData = copyGCI->anyData;
+ infoEvent("execCOPY_GCIREQ from 0x%x reason: %u (%s) data: %u",
+ c_copyGCISlave.m_senderRef,
+ c_copyGCISlave.m_copyReason,
+ reason==CopyGCIReq::LOCAL_CHECKPOINT ? "LCP" :
+ reason==CopyGCIReq::GLOBAL_CHECKPOINT ? "GCP" :
+ "OTHER",
+ c_copyGCISlave.m_senderData);
+
CRASH_INSERTION2(7020, reason==CopyGCIReq::LOCAL_CHECKPOINT);
CRASH_INSERTION2(7008, reason==CopyGCIReq::GLOBAL_CHECKPOINT);
@@ -833,6 +841,12 @@ done:
* This must be master take over...and it already complete...
*/
m_gcp_save.m_master_ref = c_copyGCISlave.m_senderRef;
+
+ infoEvent("GSN_COPY_GCICONF to 0x%x reason: %u data: %u",
+ m_gcp_save.m_master_ref,
+ c_copyGCISlave.m_copyReason,
+ c_copyGCISlave.m_senderData);
+
c_copyGCISlave.m_copyReason = CopyGCIReq::IDLE;
signal->theData[0] = c_copyGCISlave.m_senderData;
sendSignal(m_gcp_save.m_master_ref, GSN_COPY_GCICONF, signal, 1, JBB);
@@ -856,6 +870,12 @@ done:
/**
* We dont really need to make anything durable here...skip it
*/
+
+ infoEvent("GSN_COPY_GCICONF to 0x%x reason: %u data: %u",
+ c_copyGCISlave.m_senderRef,
+ c_copyGCISlave.m_copyReason,
+ c_copyGCISlave.m_senderData);
+
c_copyGCISlave.m_copyReason = CopyGCIReq::IDLE;
signal->theData[0] = c_copyGCISlave.m_senderData;
sendSignal(c_copyGCISlave.m_senderRef, GSN_COPY_GCICONF, signal, 1, JBB);
@@ -5269,6 +5289,10 @@ void Dbdih::checkGcpOutstanding(Signal*
jam();
signal->theData[0] = failedNodeId;
sendSignal(reference(), GSN_COPY_GCICONF, signal, 1, JBB);
+
+ infoEvent("GSN_COPY_GCICONF to 0x%x reason: c_COPY_GCIREQ_Counter data: %u",
+ reference(),
+ failedNodeId);
}//if
if (c_MASTER_GCPREQ_Counter.isWaitingFor(failedNodeId)){
@@ -9282,8 +9306,17 @@ void Dbdih::execCOPY_GCICONF(Signal* sig
jamEntry();
NodeRecordPtr senderNodePtr;
senderNodePtr.i = signal->theData[0];
+
+ infoEvent("execCOPY_GCICONF from 0x%x c_copyGCIMaster.m_copyReason: %u data: %u",
+ signal->getSendersBlockRef(),
+ c_copyGCIMaster.m_copyReason,
+ senderNodePtr.i);
+
receiveLoopMacro(COPY_GCIREQ, senderNodePtr.i);
+ infoEvent("execCOPY_GCICONF passed receiveLoopMacro c_copyGCIMaster.m_waiting[0]: %u (idle? %s)", c_copyGCIMaster.m_waiting[0],
+ c_copyGCIMaster.m_waiting[0] == CopyGCIReq::IDLE ? "yes" : "no");
+
CopyGCIReq::CopyReason current = c_copyGCIMaster.m_copyReason;
c_copyGCIMaster.m_copyReason = CopyGCIReq::IDLE;
@@ -9549,6 +9582,11 @@ void Dbdih::writingCopyGciLab(Signal* si
jam();
signal->theData[0] = c_copyGCISlave.m_senderData;
sendSignal(m_gcp_save.m_master_ref, GSN_COPY_GCICONF, signal, 1, JBB);
+
+ infoEvent("GSN_COPY_GCICONF to 0x%x reason: %u data: %u",
+ m_gcp_save.m_master_ref,
+ reason,
+ c_copyGCISlave.m_senderData);
}
else if (c_copyGCISlave.m_senderRef == cmasterdihref)
{
@@ -9558,6 +9596,19 @@ void Dbdih::writingCopyGciLab(Signal* si
*/
signal->theData[0] = c_copyGCISlave.m_senderData;
sendSignal(c_copyGCISlave.m_senderRef, GSN_COPY_GCICONF, signal, 1, JBB);
+
+ infoEvent("GSN_COPY_GCICONF to 0x%x reason: %u data: %u",
+ c_copyGCISlave.m_senderRef,
+ reason,
+ c_copyGCISlave.m_senderData);
+ }
+ else
+ {
+ infoEvent("don't send GSN_COPY_GCICONF to 0x%x reason: %u data: %u cmasterdihref: 0x%x",
+ c_copyGCISlave.m_senderRef,
+ reason,
+ c_copyGCISlave.m_senderData,
+ cmasterdihref);
}
return;
}//Dbdih::writingCopyGciLab()
Attachment: [text/bzr-bundle] bzr/jonas@mysql.com-20100812083921-fzz1v3xdr97kx5cd.bundle
| Thread |
|---|
| • bzr push into mysql-5.1-telco-6.3 branch (jonas:3247 to 3248) | Jonas Oreland | 12 Aug |