List:Commits« Previous MessageNext Message »
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
View as plain text  
 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#13618181Jonas Oreland30 Jan