diff options
author | unknown <tomas@whalegate.ndb.mysql.com> | 2007-05-28 12:20:34 +0200 |
---|---|---|
committer | unknown <tomas@whalegate.ndb.mysql.com> | 2007-05-28 12:20:34 +0200 |
commit | 07086b2e09b822089745ecbc9703729bf68ce9fc (patch) | |
tree | 835aaf87ddcdb43acbe042c90800d10a1c33e7b6 /storage/ndb/src/kernel/blocks | |
parent | babe38a4257bf80d30c324da20648ae6a8f0fc7a (diff) | |
download | mariadb-git-07086b2e09b822089745ecbc9703729bf68ce9fc.tar.gz |
Bug #28525 Node failures in PGMAN at ndbrequire (line 430)
(part 2)
Diffstat (limited to 'storage/ndb/src/kernel/blocks')
-rw-r--r-- | storage/ndb/src/kernel/blocks/pgman.cpp | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/storage/ndb/src/kernel/blocks/pgman.cpp b/storage/ndb/src/kernel/blocks/pgman.cpp index 09335396a07..72333856cf1 100644 --- a/storage/ndb/src/kernel/blocks/pgman.cpp +++ b/storage/ndb/src/kernel/blocks/pgman.cpp @@ -948,9 +948,11 @@ Pgman::process_map(Signal* signal) #ifdef VM_TRACE debugOut << "PGMAN: >process_map" << endl; #endif - 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; + } Page_sublist& pl_map = *m_page_sublist[Page_entry::SL_MAP]; while (! pl_map.isEmpty() && --max_count >= 0) @@ -1102,15 +1104,10 @@ Pgman::process_cleanup(Signal* signal) } 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; - - 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; - /* - * 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; @@ -1212,9 +1209,12 @@ bool Pgman::process_lcp(Signal* signal) { 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; + } #ifdef VM_TRACE debugOut |