Commit 2182eb5c authored by mskold/marty@quadfish.(none)'s avatar mskold/marty@quadfish.(none)

Merge mskold@bk-internal.mysql.com:/home/bk/mysql-5.1-new-ndb

into  mysql.com:/home/marty/MySQL/mysql-5.1-new-ndb
parents 1f244fad 2a83fd5d
...@@ -10678,6 +10678,12 @@ void Dbdih::execLCP_FRAG_REP(Signal* signal) ...@@ -10678,6 +10678,12 @@ void Dbdih::execLCP_FRAG_REP(Signal* signal)
Uint32 started = lcpReport->maxGciStarted; Uint32 started = lcpReport->maxGciStarted;
Uint32 completed = lcpReport->maxGciCompleted; Uint32 completed = lcpReport->maxGciCompleted;
if (started > c_lcpState.lcpStopGcp)
{
jam();
c_lcpState.lcpStopGcp = started;
}
if(tableDone){ if(tableDone){
jam(); jam();
...@@ -11218,7 +11224,12 @@ void Dbdih::allNodesLcpCompletedLab(Signal* signal) ...@@ -11218,7 +11224,12 @@ void Dbdih::allNodesLcpCompletedLab(Signal* signal)
signal->theData[0] = NDB_LE_LocalCheckpointCompleted; //Event type signal->theData[0] = NDB_LE_LocalCheckpointCompleted; //Event type
signal->theData[1] = SYSFILE->latestLCP_ID; signal->theData[1] = SYSFILE->latestLCP_ID;
sendSignal(CMVMI_REF, GSN_EVENT_REP, signal, 2, JBB); sendSignal(CMVMI_REF, GSN_EVENT_REP, signal, 2, JBB);
if (c_newest_restorable_gci > c_lcpState.lcpStopGcp)
{
jam();
c_lcpState.lcpStopGcp = c_newest_restorable_gci; c_lcpState.lcpStopGcp = c_newest_restorable_gci;
}
/** /**
* Start checking for next LCP * Start checking for next LCP
...@@ -12088,13 +12099,12 @@ void Dbdih::findMinGci(ReplicaRecordPtr fmgReplicaPtr, ...@@ -12088,13 +12099,12 @@ void Dbdih::findMinGci(ReplicaRecordPtr fmgReplicaPtr,
lcpNo = fmgReplicaPtr.p->nextLcp; lcpNo = fmgReplicaPtr.p->nextLcp;
do { do {
ndbrequire(lcpNo < MAX_LCP_STORED); ndbrequire(lcpNo < MAX_LCP_STORED);
if (fmgReplicaPtr.p->lcpStatus[lcpNo] == ZVALID && if (fmgReplicaPtr.p->lcpStatus[lcpNo] == ZVALID)
fmgReplicaPtr.p->maxGciStarted[lcpNo] < c_newest_restorable_gci)
{ {
jam(); jam();
keepGci = fmgReplicaPtr.p->maxGciCompleted[lcpNo]; keepGci = fmgReplicaPtr.p->maxGciCompleted[lcpNo];
oldestRestorableGci = fmgReplicaPtr.p->maxGciStarted[lcpNo]; oldestRestorableGci = fmgReplicaPtr.p->maxGciStarted[lcpNo];
ndbrequire(((int)oldestRestorableGci) >= 0); ndbassert(fmgReplicaPtr.p->maxGciStarted[lcpNo] <c_newest_restorable_gci);
return; return;
} else { } else {
jam(); jam();
......
...@@ -1501,9 +1501,9 @@ void PollGuard::unlock_and_signal() ...@@ -1501,9 +1501,9 @@ void PollGuard::unlock_and_signal()
if (t_signal_cond_waiter) if (t_signal_cond_waiter)
t_signal_cond_waiter->set_poll_owner(true); t_signal_cond_waiter->set_poll_owner(true);
} }
m_tp->unlock_mutex();
if (t_signal_cond_waiter) if (t_signal_cond_waiter)
t_signal_cond_waiter->cond_signal(); t_signal_cond_waiter->cond_signal();
m_tp->unlock_mutex();
m_locked=false; m_locked=false;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment