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

Andrew Purtell edited comment on PHOENIX-4682 at 4/2/18 6:32 PM:
-----------------------------------------------------------------

The current patch that swallows all exceptions in the hook rather than throw 
them is fine by me.
{quote}Also I think what Andrew was saying was that we can/should throw 
IOExceptions (which abort the compaction), just not other types of exceptions 
(which abort the RS).
{quote}
Swallowing the TableNotFoundException is the minimal fix. Swallowing them all 
is not unreasonable at this time. We don't want to crash the RS. 

Edit: Looking at the stack trace we have on hand, the RS abort due to 
UndeclaredThrowableException was due to a logic bug that may not be immediately 
obvious (how the IOE gets converted into that UTE). Handling all exceptions in 
that doAs isn't unreasonable because otherwise we can crash the RS.

Warning like we do here is fine. There can be more done with follow up issues.

Should disable indexes if the exception will affect them.


was (Author: apurtell):
It would be better to disable the index than throw an exception.

The current patch that swallows all exceptions in the hook rather than throw 
them is fine by me.

bq. Also I think what Andrew was saying was that we can/should throw 
IOExceptions (which abort the compaction), just not other types of exceptions 
(which abort the RS).

Yes, but I don't think they are going to be handled like we expect, sigh. I 
went back and looked at the stack trace we have on hand. The exception that 
propagates up to the top level handler is an UndeclaredThrowableException. This 
is because there is a doAs() somewhere in the call stack for compaction 
activity not declared to throw an IOE, so throwing any IOE out of this hook is 
going to be fatal under these circumstances.

Swallowing the TableNotFoundException is the minimal fix. Swallowing them all 
is not unreasonable at this time.

> UngroupedAggregateRegionObserver preCompactScannerOpen hook should not throw 
> exceptions
> ---------------------------------------------------------------------------------------
>
>                 Key: PHOENIX-4682
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-4682
>             Project: Phoenix
>          Issue Type: Bug
>    Affects Versions: 4.13.0
>            Reporter: Vincent Poon
>            Assignee: Vincent Poon
>            Priority: Major
>         Attachments: PHOENIX-4682.master.v1.patch
>
>
> TableNotFoundException in the preCompactScannerOpen hook can lead to RS abort.
> Some tables might have the phoenix coprocessor loaded but not be actual 
> Phoenix tables (i.e. have a row in SYSTEM.CATALOG).  We should ignore these 
> Exceptions instead of throwing them.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to