drill-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From paul-rogers <...@git.apache.org>
Subject [GitHub] drill pull request #838: DRILL-5512: Standardize error handling in ScanBatch
Date Fri, 19 May 2017 17:42:00 GMT
Github user paul-rogers commented on a diff in the pull request:

    --- Diff: exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/ScanBatch.java
    @@ -213,17 +213,16 @@ public IterOutcome next() {
               try {
               } catch (OutOfMemoryException e) {
    -            logger.debug("Caught OutOfMemoryException");
    -            return IterOutcome.OUT_OF_MEMORY;
    +            throw UserException.memoryError(e).build(logger);
             } catch (ExecutionSetupException e) {
    -          this.context.fail(e);
    --- End diff --
    Throwing an exception, it turns out, does exactly the same: it cancels the query and causes
the fragment executor to cascade close() calls to all the operators (record batches) in the
fragment tree. It seems some code kills the query by throwing an exception, other code calls
the fail method and bubbles up STOP. But, since the proper way to handle STOP is to unwind
the stack, STOP is equivalent to throwing an exception.
    The idea is, rather than have two ways to clean up, let's standardize on one. Since we
must handle unchecked exceptions in any case, the exception-based solution is the logical
choice for standardization.

If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.

View raw message