[
https://issues.apache.org/jira/browse/PHOENIX-3071?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Andrew Purtell updated PHOENIX-3071:
------------------------------------
Description:
Phoenix is throwing a RetriesExhaustedWithDetailsException out of
MutationState. RetriesExhaustedWithDetailsException carries a lot of
interesting information accessible via type specific methods. Instead of just
rethrowing RetriesExhaustedWithDetailsException, MutationState should construct
a CommitException that enumerates rows and last known server location using
RetriesExhaustedWithDetailsException#getRow(int) and
RetriesExhaustedWithDetailsException#getHostnamePort(int).
Consider alerts of the form (prettily formatted):
{noformat}
CommitException: RetriesExhaustedWithDetailsException:
Failed 88 actions: IOException: 88 times, at MutationState [
Table: TEST_TABLE [
Row: testRowc1900d75072f9fc8217735631dda44a3
Location: host1234.domain.company.com,
Row: ...
]
]
{noformat}
The additional information in the exception message can significantly aid
debugging and remediation efforts because the location(s) causing issues for
the client will be known up front.
Probably want to stop enumerating after a configurable number of locations and
skip an entry if the preceding entry also has the same row and location.
Should do the same wherever rethrowing or bubbling up
RetriesExhaustedWithDetailsException.
was:
Phoenix is throwing a RetriesExhaustedWithDetailsException out of
MutationState. RetriesExhaustedWithDetailsException carries a lot of
interesting information accessible via type specific methods. Instead of just
rethrowing RetriesExhaustedWithDetailsException, MutationState should construct
a CommitException that enumerates rows and last known server location using
RetriesExhaustedWithDetailsException#getRow(int) and
RetriesExhaustedWithDetailsException#getHostnamePort(int).
Consider alerts of the form (prettily formatted):
{noformat}
CommitException: RetriesExhaustedWithDetailsException:
Failed 88 actions: IOException: 88 times, at MutationState [
Table: TEST_TABLE [
Row: testRowc1900d75072f9fc8217735631dda44a3
Location: host1234.domain.company.com,
Row: ...
]
]
{noformat}
The additional information in the exception message can significantly aid
debugging and remediation efforts because the location(s) causing issues for
the client will be known up front.
Probably want to stop enumerating after a configurable number of locations and
skip an entry if the preceding entry also has the same row and location.
> Surface more information on failed locations
> --------------------------------------------
>
> Key: PHOENIX-3071
> URL: https://issues.apache.org/jira/browse/PHOENIX-3071
> Project: Phoenix
> Issue Type: Improvement
> Reporter: Andrew Purtell
> Priority: Minor
>
> Phoenix is throwing a RetriesExhaustedWithDetailsException out of
> MutationState. RetriesExhaustedWithDetailsException carries a lot of
> interesting information accessible via type specific methods. Instead of just
> rethrowing RetriesExhaustedWithDetailsException, MutationState should
> construct a CommitException that enumerates rows and last known server
> location using RetriesExhaustedWithDetailsException#getRow(int) and
> RetriesExhaustedWithDetailsException#getHostnamePort(int).
> Consider alerts of the form (prettily formatted):
> {noformat}
> CommitException: RetriesExhaustedWithDetailsException:
> Failed 88 actions: IOException: 88 times, at MutationState [
> Table: TEST_TABLE [
> Row: testRowc1900d75072f9fc8217735631dda44a3
> Location: host1234.domain.company.com,
> Row: ...
> ]
> ]
> {noformat}
> The additional information in the exception message can significantly aid
> debugging and remediation efforts because the location(s) causing issues for
> the client will be known up front.
> Probably want to stop enumerating after a configurable number of locations
> and skip an entry if the preceding entry also has the same row and location.
> Should do the same wherever rethrowing or bubbling up
> RetriesExhaustedWithDetailsException.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)