BUG#ndb_blob on 1 node
Make sure to flush buffer when sending long sig so that order is maintained
This commit is contained in:
parent
c2e13da240
commit
7fa2b4ef4e
@ -141,6 +141,8 @@ void Dbtup::sendReadAttrinfo(Signal* signal,
|
|||||||
const Uint32 type = getNodeInfo(nodeId).m_type;
|
const Uint32 type = getNodeInfo(nodeId).m_type;
|
||||||
bool is_api = (type >= NodeInfo::API && type <= NodeInfo::REP);
|
bool is_api = (type >= NodeInfo::API && type <= NodeInfo::REP);
|
||||||
bool old_dest = (getNodeInfo(nodeId).m_version < MAKE_VERSION(3,5,0));
|
bool old_dest = (getNodeInfo(nodeId).m_version < MAKE_VERSION(3,5,0));
|
||||||
|
Uint32 TpacketTA = hostBuffer[nodeId].noOfPacketsTA;
|
||||||
|
Uint32 TpacketLen = hostBuffer[nodeId].packetLenTA;
|
||||||
|
|
||||||
if (ERROR_INSERTED(4006) && (nodeId != getOwnNodeId())){
|
if (ERROR_INSERTED(4006) && (nodeId != getOwnNodeId())){
|
||||||
// Use error insert to turn routing on
|
// Use error insert to turn routing on
|
||||||
@ -169,6 +171,19 @@ void Dbtup::sendReadAttrinfo(Signal* signal,
|
|||||||
*/
|
*/
|
||||||
if(ToutBufIndex >= 22 && is_api && !old_dest) {
|
if(ToutBufIndex >= 22 && is_api && !old_dest) {
|
||||||
ljam();
|
ljam();
|
||||||
|
/**
|
||||||
|
* Flush buffer so that order is maintained
|
||||||
|
*/
|
||||||
|
if (TpacketTA != 0) {
|
||||||
|
ljam();
|
||||||
|
BlockReference TBref = numberToRef(API_PACKED, nodeId);
|
||||||
|
MEMCOPY_NO_WORDS(&signal->theData[0],
|
||||||
|
&hostBuffer[nodeId].packetBufferTA[0],
|
||||||
|
TpacketLen);
|
||||||
|
sendSignal(TBref, GSN_TRANSID_AI, signal, TpacketLen, JBB);
|
||||||
|
hostBuffer[nodeId].noOfPacketsTA = 0;
|
||||||
|
hostBuffer[nodeId].packetLenTA = 0;
|
||||||
|
}//if
|
||||||
LinearSectionPtr ptr[3];
|
LinearSectionPtr ptr[3];
|
||||||
ptr[0].p = &signal->theData[25];
|
ptr[0].p = &signal->theData[25];
|
||||||
ptr[0].sz = ToutBufIndex;
|
ptr[0].sz = ToutBufIndex;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user