mirror of
https://github.com/MariaDB/server.git
synced 2025-01-18 04:53:01 +01:00
ndb - bug#21800
read TransactionDeadlockTimeout (for scans) to cater for insane settings
This commit is contained in:
parent
a2f1b78083
commit
b60be73461
1 changed files with 9 additions and 4 deletions
|
@ -504,6 +504,8 @@ int NdbScanOperation::nextResult(bool fetchAllowed, bool forceSend)
|
|||
|
||||
idx = m_current_api_receiver;
|
||||
last = m_api_receivers_count;
|
||||
|
||||
Uint32 timeout = tp->m_waitfor_timeout;
|
||||
|
||||
do {
|
||||
if(theError.code){
|
||||
|
@ -531,7 +533,7 @@ int NdbScanOperation::nextResult(bool fetchAllowed, bool forceSend)
|
|||
*/
|
||||
theNdb->theImpl->theWaiter.m_node = nodeId;
|
||||
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)) {
|
||||
continue;
|
||||
} else {
|
||||
|
@ -1372,6 +1374,7 @@ NdbIndexScanOperation::next_result_ordered(bool fetchAllowed,
|
|||
return -1;
|
||||
Uint32 seq = theNdbCon->theNodeSequence;
|
||||
Uint32 nodeId = theNdbCon->theDBnode;
|
||||
Uint32 timeout = tp->m_waitfor_timeout;
|
||||
if(seq == tp->getNodeSequence(nodeId) &&
|
||||
!send_next_scan_ordered(s_idx, forceSend)){
|
||||
Uint32 tmp = m_sent_receivers_count;
|
||||
|
@ -1379,7 +1382,7 @@ NdbIndexScanOperation::next_result_ordered(bool fetchAllowed,
|
|||
while(m_sent_receivers_count > 0 && !theError.code){
|
||||
theNdb->theImpl->theWaiter.m_node = nodeId;
|
||||
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)) {
|
||||
continue;
|
||||
}
|
||||
|
@ -1520,6 +1523,8 @@ NdbScanOperation::close_impl(TransporterFacade* tp, bool forceSend){
|
|||
return -1;
|
||||
}
|
||||
|
||||
Uint32 timeout = tp->m_waitfor_timeout;
|
||||
|
||||
/**
|
||||
* Wait for outstanding
|
||||
*/
|
||||
|
@ -1527,7 +1532,7 @@ NdbScanOperation::close_impl(TransporterFacade* tp, bool forceSend){
|
|||
{
|
||||
theNdb->theImpl->theWaiter.m_node = nodeId;
|
||||
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){
|
||||
case 0:
|
||||
break;
|
||||
|
@ -1597,7 +1602,7 @@ NdbScanOperation::close_impl(TransporterFacade* tp, bool forceSend){
|
|||
{
|
||||
theNdb->theImpl->theWaiter.m_node = nodeId;
|
||||
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){
|
||||
case 0:
|
||||
break;
|
||||
|
|
Loading…
Reference in a new issue