Преглед изворни кода

Merge pull request #3807 from richardkchapman/catch-leak

HPCC-8454 Roxie leaks rows when exception thrown in child query

Reviewed-by: Gavin Halliday <ghalliday@hpccsystems.com>
Gavin Halliday пре 12 година
родитељ
комит
4d4c4c2584
1 измењених фајлова са 2 додато и 3 уклоњено
  1. 2 3
      roxie/ccd/ccdserver.cpp

+ 2 - 3
roxie/ccd/ccdserver.cpp

@@ -13388,12 +13388,12 @@ public:
         ActivityTimer t(totalCycles, timeActivities, ctx->queryDebugContext());
         loop
         {
-            const void * in = input->nextInGroup();
+            OwnedConstRoxieRow in = input->nextInGroup();
             if (!in)
             {
                 recordCount = 0;
                 if (numProcessedLastGroup == processed)
-                    in = input->nextInGroup();
+                    in.setown(input->nextInGroup());
                 if (!in)
                 {
                     numProcessedLastGroup = processed;
@@ -13409,7 +13409,6 @@ public:
                     outSize = ((IHThorCountProjectArg &) basehelper).transform(rowBuilder, in, ++recordCount);
                 else
                     outSize = ((IHThorProjectArg &) basehelper).transform(rowBuilder, in);
-                ReleaseRoxieRow(in);
                 if (outSize)
                 {
                     processed++;