phoenix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Andrew Purtell (JIRA)" <j...@apache.org>
Subject [jira] [Comment Edited] (PHOENIX-4682) UngroupedAggregateRegionObserver preCompactScannerOpen hook should not throw exceptions
Date Mon, 02 Apr 2018 18:33:00 GMT

    [ 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)

Mime
View raw message