List:Commits« Previous MessageNext Message »
From:Georgi Kodinov Date:July 9 2009 12:05pm
Subject:bzr commit into mysql-5.1-bugteam branch (joro:3016) Bug#45962
View as plain text  
#At file:///home/kgeorge/mysql/work/B45962-5.1-bugteam/ based on revid:aelkin@stripped

 3016 Georgi Kodinov	2009-07-09
      Bug #45962: memory leak after 'sort aborted' errors
      
      When the function exits with an error it was not
      freeing the local Unique class instance.
      Fixed my making sure all the places where the function
      returns from are freeing the Unique instance 

    modified:
      sql/opt_range.cc
=== modified file 'sql/opt_range.cc'
--- a/sql/opt_range.cc	2009-06-16 08:43:13 +0000
+++ b/sql/opt_range.cc	2009-07-09 12:05:30 +0000
@@ -8065,7 +8065,10 @@ int QUICK_INDEX_MERGE_SELECT::read_keys_
       if (cur_quick->file->inited != handler::NONE) 
         cur_quick->file->ha_index_end();
       if (cur_quick->init() || cur_quick->reset())
+      {
+        delete unique;
         DBUG_RETURN(1);
+      }
     }
 
     if (result)
@@ -8073,13 +8076,17 @@ int QUICK_INDEX_MERGE_SELECT::read_keys_
       if (result != HA_ERR_END_OF_FILE)
       {
         cur_quick->range_end();
+        delete unique;
         DBUG_RETURN(result);
       }
       break;
     }
 
     if (thd->killed)
+    {
+      delete unique;
       DBUG_RETURN(1);
+    }
 
     /* skip row if it will be retrieved by clustered PK scan */
     if (pk_quick_select && pk_quick_select->row_in_ranges())
@@ -8088,8 +8095,10 @@ int QUICK_INDEX_MERGE_SELECT::read_keys_
     cur_quick->file->position(cur_quick->record);
     result= unique->unique_add((char*)cur_quick->file->ref);
     if (result)
+    {
+      delete unique;
       DBUG_RETURN(1);
-
+    }
   }
 
   /*


Attachment: [text/bzr-bundle] bzr/joro@sun.com-20090709120530-85ximdkd4m72qagu.bundle
Thread
bzr commit into mysql-5.1-bugteam branch (joro:3016) Bug#45962Georgi Kodinov9 Jul