This is an automated email from the ASF dual-hosted git repository.

boaz pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/drill.git


The following commit(s) were added to refs/heads/master by this push:
     new d2645c7  DRILL-7170: Ignore uninitialized vector containers for OOM 
error messages
d2645c7 is described below

commit d2645c7638a88a4afd162bc3f1e2d65353ca3a67
Author: Ben-Zvi <bben-...@mapr.com>
AuthorDate: Wed Sep 25 17:27:13 2019 -0700

    DRILL-7170: Ignore uninitialized vector containers for OOM error messages
---
 .../apache/drill/exec/physical/impl/common/HashTableTemplate.java  | 6 +++++-
 .../java/org/apache/drill/exec/physical/impl/spill/SpillSet.java   | 7 +++++--
 2 files changed, 10 insertions(+), 3 deletions(-)

diff --git 
a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/common/HashTableTemplate.java
 
b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/common/HashTableTemplate.java
index d0789e8..b549a9e 100644
--- 
a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/common/HashTableTemplate.java
+++ 
b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/common/HashTableTemplate.java
@@ -459,7 +459,11 @@ public abstract class HashTableTemplate implements 
HashTable {
         size += ledger.getAccountedSize();
       }
 
-      size += new RecordBatchSizer(htContainer).getActualSize();
+      // In some rare cases (e.g., making a detailed debug msg after an OOM) 
the container
+      // was not initialized; ignore such cases
+      if ( htContainer.hasRecordCount() ) {
+        size += new RecordBatchSizer(htContainer).getActualSize();
+      }
       return size;
     }
   }
diff --git 
a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/spill/SpillSet.java
 
b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/spill/SpillSet.java
index 3a2e668..a06ce09 100644
--- 
a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/spill/SpillSet.java
+++ 
b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/spill/SpillSet.java
@@ -324,8 +324,11 @@ public class SpillSet {
 
     @Override
     public void deleteDir(String fragmentSpillDir) throws IOException {
-      boolean deleted = new File(baseDir, fragmentSpillDir).delete();
-      if ( ! deleted ) { throw new IOException("Failed to delete: " + 
fragmentSpillDir);}
+      File spillDir = new File(baseDir, fragmentSpillDir);
+      for (File spillFile : spillDir.listFiles()) {
+        spillFile.delete(); // IO exception if file delete fails
+      }
+      spillDir.delete();// IO exception if dir delete fails
     }
 
     @Override

Reply via email to