[ 
https://issues.apache.org/jira/browse/DRILL-5058?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15684296#comment-15684296
 ] 

ASF GitHub Bot commented on DRILL-5058:
---------------------------------------

GitHub user paul-rogers opened a pull request:

    https://github.com/apache/drill/pull/664

    DRILL-5058: External sort does not handle its own UserExceptions

    Solution is to catch the exception, clean up, and fail the operator.
    
    Test case is the existing {{TestSortSpillWithException}} test case.

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/paul-rogers/drill DRILL-5058

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/drill/pull/664.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #664
    
----
commit 21f6fdcc00e08f30ad246a18b1d7c3f4ac2e7777
Author: Paul Rogers <[email protected]>
Date:   2016-11-21T18:14:28Z

    DRILL-5058: External sort does not handle its own UserExceptions
    
    Solution is to catch the exception, clean up, and fail the operator.

----


> External sort does not handle its own UserExceptions
> ----------------------------------------------------
>
>                 Key: DRILL-5058
>                 URL: https://issues.apache.org/jira/browse/DRILL-5058
>             Project: Apache Drill
>          Issue Type: Bug
>    Affects Versions: 1.8.0
>            Reporter: Paul Rogers
>            Assignee: Paul Rogers
>
> The external sort throws a {{UserException}} in a variety of conditions: 
> error during spilling, on out-of-memory on SV2 allocation, and on a schema 
> change.
> However, except for the schema change, the external sort does not *handle* 
> the exceptions that it throws. In part this is because {{UserException}} is 
> unchecked, so the code is not obligated to handle it. By handle, here we mean 
> clean up resources, send a {{IterOutcome.STOP}} result to the downstream 
> operator, etc.
> The fix is to add a catch for {{UserException}} to the block of catches in 
> {{innerNext()}}.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to