Bug #28525 Node failures in PGMAN at ndbrequire (line 430)

(part 2)
parent d2590281
...@@ -948,9 +948,11 @@ Pgman::process_map(Signal* signal) ...@@ -948,9 +948,11 @@ Pgman::process_map(Signal* signal)
#ifdef VM_TRACE #ifdef VM_TRACE
debugOut << "PGMAN: >process_map" << endl; debugOut << "PGMAN: >process_map" << endl;
#endif #endif
int max_count = m_param.m_max_io_waits - m_stats.m_current_io_waits; int max_count = 0;
if (max_count > 0) if (m_param.m_max_io_waits > m_stats.m_current_io_waits) {
max_count = m_param.m_max_io_waits - m_stats.m_current_io_waits;
max_count = max_count / 2 + 1; max_count = max_count / 2 + 1;
}
Page_sublist& pl_map = *m_page_sublist[Page_entry::SL_MAP]; Page_sublist& pl_map = *m_page_sublist[Page_entry::SL_MAP];
while (! pl_map.isEmpty() && --max_count >= 0) while (! pl_map.isEmpty() && --max_count >= 0)
...@@ -1102,15 +1104,10 @@ Pgman::process_cleanup(Signal* signal) ...@@ -1102,15 +1104,10 @@ Pgman::process_cleanup(Signal* signal)
} }
int max_loop_count = m_param.m_max_loop_count; int max_loop_count = m_param.m_max_loop_count;
int max_count = m_param.m_max_io_waits - m_stats.m_current_io_waits; int max_count = 0;
if (m_param.m_max_io_waits > m_stats.m_current_io_waits) {
if (max_count > 0) max_count = m_param.m_max_io_waits - m_stats.m_current_io_waits;
{
max_count = max_count / 2 + 1; max_count = max_count / 2 + 1;
/*
* Possibly add code here to avoid writing too rapidly. May be
* unnecessary since only cold pages are cleaned.
*/
} }
Ptr<Page_entry> ptr = m_cleanup_ptr; Ptr<Page_entry> ptr = m_cleanup_ptr;
...@@ -1212,9 +1209,12 @@ bool ...@@ -1212,9 +1209,12 @@ bool
Pgman::process_lcp(Signal* signal) Pgman::process_lcp(Signal* signal)
{ {
Page_hashlist& pl_hash = m_page_hashlist; Page_hashlist& pl_hash = m_page_hashlist;
int max_count = m_param.m_max_io_waits - m_stats.m_current_io_waits;
if (max_count > 0) int max_count = 0;
if (m_param.m_max_io_waits > m_stats.m_current_io_waits) {
max_count = m_param.m_max_io_waits - m_stats.m_current_io_waits;
max_count = max_count / 2 + 1; max_count = max_count / 2 + 1;
}
#ifdef VM_TRACE #ifdef VM_TRACE
debugOut debugOut
......
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