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).
| Thread |
|---|
| • bzr push into mysql-5.1-telco-7.0 branch (jonas.oreland:4832 to 4833)Bug#13618181 | Jonas Oreland | 30 Jan |