From: Jonas Oreland Date: January 30 2012 1:21pm Subject: bzr push into mysql-5.1-telco-7.0 branch (jonas.oreland:4832 to 4833) Bug#13618181 List-Archive: http://lists.mysql.com/commits/142638 X-Bug: 13618181 Message-Id: <20120130132110.272E955C2D4@perch.localdomain> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit 4833 Jonas Oreland 2012-01-30 ndb - bug#13618181 - patch 2 - make sure to release pages before (maybe) looping on sb->m_force_send modified: storage/ndb/src/kernel/vm/mt.cpp 4832 Jonas Oreland 2012-01-30 ndb - puhh...missed adding // modified: storage/ndb/src/kernel/blocks/backup/BackupInit.cpp === modified file 'storage/ndb/src/kernel/vm/mt.cpp' --- a/storage/ndb/src/kernel/vm/mt.cpp 2012-01-25 15:40:19 +0000 +++ b/storage/ndb/src/kernel/vm/mt.cpp 2012-01-30 13:13:37 +0000 @@ -2646,9 +2646,13 @@ mt_send_handle::forceSend(NodeId nodeId) globalTransporterRegistry.performSend(nodeId); sb->m_send_thread = NO_SEND_THREAD; unlock(&sb->m_send_lock); - } while (sb->m_force_send); - selfptr->m_send_buffer_pool.release_global(rep->m_mm, RG_TRANSPORTER_BUFFERS); + /** + * release buffers prior to maybe looping on sb->m_force_send + */ + selfptr->m_send_buffer_pool.release_global(rep->m_mm, + RG_TRANSPORTER_BUFFERS); + } while (sb->m_force_send); return true; } @@ -2677,9 +2681,13 @@ try_send(thr_data * selfptr, Uint32 node globalTransporterRegistry.performSend(node); sb->m_send_thread = NO_SEND_THREAD; unlock(&sb->m_send_lock); - } while (sb->m_force_send); - selfptr->m_send_buffer_pool.release_global(rep->m_mm, RG_TRANSPORTER_BUFFERS); + /** + * release buffers prior to maybe looping on sb->m_force_send + */ + selfptr->m_send_buffer_pool.release_global(rep->m_mm, + RG_TRANSPORTER_BUFFERS); + } while (sb->m_force_send); } /** @@ -2811,6 +2819,14 @@ do_send(struct thr_data* selfptr, bool m { register_pending_send(selfptr, node); } + if (sb->m_force_send) + { + /** + * release buffers prior to looping on sb->m_force_send + */ + selfptr->m_send_buffer_pool.release_global(rep->m_mm, + RG_TRANSPORTER_BUFFERS); + } } while (sb->m_force_send); } No bundle (reason: useless for push emails).