[
https://issues.apache.org/jira/browse/PHOENIX-1289?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14149864#comment-14149864
]
Jesse Yates commented on PHOENIX-1289:
--------------------------------------
Thanks [~daniel.M]! Two issues, one small, one large.
(1) Spacing on the LOG message is off - I'll just fix that on commit.
(2) The test doesn't seem to pass for me - with your fix it ends up still
killing the RS and then going into an infinite loop as it tries to restore the
index writes on region restore. I had to add in the following:
{code}
@@ -95,6 +95,7 @@ public class PhoenixIndexFailurePolicy extends
KillServerOnFailurePolicy {
List<String> indexTableNames = new ArrayList<String>(1);
try {
for (HTableInterfaceReference ref : refs) {
+ indexTableNames.clear();
long minTimeStamp = 0;
Collection<Mutation> mutations = attempted.get(ref);
if (mutations != null) {
{code}
Which clears the index table names we lookup each time. Not quite sure why
that's necessary - I'll have to look into it a little more - as the table thats
removed should be removed all the time.
Maybe you have an idea?
> Drop index during upsert may abort RS
> -------------------------------------
>
> Key: PHOENIX-1289
> URL: https://issues.apache.org/jira/browse/PHOENIX-1289
> Project: Phoenix
> Issue Type: Bug
> Affects Versions: 3.0.0
> Reporter: daniel meng
> Attachments: DropIndexDuringUpsertIT.java, PHOENIX-1289.PATCH
>
>
> below execute path will abort RS:
> 1. client A write to table T with mutation m。 and T has an index of name IDX
> 2. m arrival at RS, but not start processing yet
> 3. client B drop index IDX
> 4. RS try to process m, and we get m' for IDX
> 5. RS try to write m' but fail as HBase Table IDX not exist
> 6. RS try to disable IDX but fail as Metadata has been deleted
> 7. KillServerOnFailurePolicy is triggered, server abort
> 8. recovery will fail with the same reason.
> an IT is attached
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)