ndb - bug#21800
read TransactionDeadlockTimeout (for scans) to cater for insane settings ndb/src/ndbapi/NdbScanOperation.cpp: read TransactionDeadlockTimeout to cater for insane settings
This commit is contained in:
parent
3d7cb87b00
commit
5d82bec5b8
@ -505,6 +505,8 @@ int NdbScanOperation::nextResult(bool fetchAllowed, bool forceSend)
|
|||||||
idx = m_current_api_receiver;
|
idx = m_current_api_receiver;
|
||||||
last = m_api_receivers_count;
|
last = m_api_receivers_count;
|
||||||
|
|
||||||
|
Uint32 timeout = tp->m_waitfor_timeout;
|
||||||
|
|
||||||
do {
|
do {
|
||||||
if(theError.code){
|
if(theError.code){
|
||||||
setErrorCode(theError.code);
|
setErrorCode(theError.code);
|
||||||
@ -531,7 +533,7 @@ int NdbScanOperation::nextResult(bool fetchAllowed, bool forceSend)
|
|||||||
*/
|
*/
|
||||||
theNdb->theImpl->theWaiter.m_node = nodeId;
|
theNdb->theImpl->theWaiter.m_node = nodeId;
|
||||||
theNdb->theImpl->theWaiter.m_state = WAIT_SCAN;
|
theNdb->theImpl->theWaiter.m_state = WAIT_SCAN;
|
||||||
int return_code = theNdb->receiveResponse(WAITFOR_SCAN_TIMEOUT);
|
int return_code = theNdb->receiveResponse(3*timeout);
|
||||||
if (return_code == 0 && seq == tp->getNodeSequence(nodeId)) {
|
if (return_code == 0 && seq == tp->getNodeSequence(nodeId)) {
|
||||||
continue;
|
continue;
|
||||||
} else {
|
} else {
|
||||||
@ -1372,6 +1374,7 @@ NdbIndexScanOperation::next_result_ordered(bool fetchAllowed,
|
|||||||
return -1;
|
return -1;
|
||||||
Uint32 seq = theNdbCon->theNodeSequence;
|
Uint32 seq = theNdbCon->theNodeSequence;
|
||||||
Uint32 nodeId = theNdbCon->theDBnode;
|
Uint32 nodeId = theNdbCon->theDBnode;
|
||||||
|
Uint32 timeout = tp->m_waitfor_timeout;
|
||||||
if(seq == tp->getNodeSequence(nodeId) &&
|
if(seq == tp->getNodeSequence(nodeId) &&
|
||||||
!send_next_scan_ordered(s_idx, forceSend)){
|
!send_next_scan_ordered(s_idx, forceSend)){
|
||||||
Uint32 tmp = m_sent_receivers_count;
|
Uint32 tmp = m_sent_receivers_count;
|
||||||
@ -1379,7 +1382,7 @@ NdbIndexScanOperation::next_result_ordered(bool fetchAllowed,
|
|||||||
while(m_sent_receivers_count > 0 && !theError.code){
|
while(m_sent_receivers_count > 0 && !theError.code){
|
||||||
theNdb->theImpl->theWaiter.m_node = nodeId;
|
theNdb->theImpl->theWaiter.m_node = nodeId;
|
||||||
theNdb->theImpl->theWaiter.m_state = WAIT_SCAN;
|
theNdb->theImpl->theWaiter.m_state = WAIT_SCAN;
|
||||||
int return_code = theNdb->receiveResponse(WAITFOR_SCAN_TIMEOUT);
|
int return_code = theNdb->receiveResponse(3*timeout);
|
||||||
if (return_code == 0 && seq == tp->getNodeSequence(nodeId)) {
|
if (return_code == 0 && seq == tp->getNodeSequence(nodeId)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@ -1520,6 +1523,8 @@ NdbScanOperation::close_impl(TransporterFacade* tp, bool forceSend){
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Uint32 timeout = tp->m_waitfor_timeout;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Wait for outstanding
|
* Wait for outstanding
|
||||||
*/
|
*/
|
||||||
@ -1527,7 +1532,7 @@ NdbScanOperation::close_impl(TransporterFacade* tp, bool forceSend){
|
|||||||
{
|
{
|
||||||
theNdb->theImpl->theWaiter.m_node = nodeId;
|
theNdb->theImpl->theWaiter.m_node = nodeId;
|
||||||
theNdb->theImpl->theWaiter.m_state = WAIT_SCAN;
|
theNdb->theImpl->theWaiter.m_state = WAIT_SCAN;
|
||||||
int return_code = theNdb->receiveResponse(WAITFOR_SCAN_TIMEOUT);
|
int return_code = theNdb->receiveResponse(3*timeout);
|
||||||
switch(return_code){
|
switch(return_code){
|
||||||
case 0:
|
case 0:
|
||||||
break;
|
break;
|
||||||
@ -1597,7 +1602,7 @@ NdbScanOperation::close_impl(TransporterFacade* tp, bool forceSend){
|
|||||||
{
|
{
|
||||||
theNdb->theImpl->theWaiter.m_node = nodeId;
|
theNdb->theImpl->theWaiter.m_node = nodeId;
|
||||||
theNdb->theImpl->theWaiter.m_state = WAIT_SCAN;
|
theNdb->theImpl->theWaiter.m_state = WAIT_SCAN;
|
||||||
int return_code = theNdb->receiveResponse(WAITFOR_SCAN_TIMEOUT);
|
int return_code = theNdb->receiveResponse(3*timeout);
|
||||||
switch(return_code){
|
switch(return_code){
|
||||||
case 0:
|
case 0:
|
||||||
break;
|
break;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user