You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@phoenix.apache.org by "Neha Gupta (Jira)" <ji...@apache.org> on 2020/04/21 17:25:00 UTC

[jira] [Updated] (PHOENIX-5496) Ensure that we handle all server-side mutation codes on the client[Create table]

     [ https://issues.apache.org/jira/browse/PHOENIX-5496?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Neha Gupta updated PHOENIX-5496:
--------------------------------
    Summary: Ensure that we handle all server-side mutation codes on the client[Create table]  (was: Ensure that we handle all server-side mutation codes on the client)

> Ensure that we handle all server-side mutation codes on the client[Create table]
> --------------------------------------------------------------------------------
>
>                 Key: PHOENIX-5496
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-5496
>             Project: Phoenix
>          Issue Type: Bug
>    Affects Versions: 4.15.0, 5.1.0
>            Reporter: Chinmay Kulkarni
>            Assignee: Neha Gupta
>            Priority: Major
>             Fix For: 4.15.1, 5.1.1
>
>         Attachments: PHOENIX-5496.4.x.patch, PHOENIX-5496.master.patch
>
>          Time Spent: 4h 20m
>  Remaining Estimate: 0h
>
> There are many instances throughout wherein we set a certain error mutation code in the RPC callback, however we do not handle these mutation codes on the client.
> For example: 
> If the metadata rows for a tableKey are no longer in that SYSCAT region, checkTableKeyInRegion() fails, the metadata for this table is not written to SYSCAT and [the TABLE_NOT_IN_REGION mutation code is set|https://github.com/apache/phoenix/blob/11997d48d1957cf613526f01c5ccbe2812cf095d/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/MetaDataEndpointImpl.java#L1785-L1790].
> This is handled for 1 retry inside [CQSI.metaDataCoprocessorExec|https://github.com/apache/phoenix/blob/11997d48d1957cf613526f01c5ccbe2812cf095d/phoenix-core/src/main/java/org/apache/phoenix/query/ConnectionQueryServicesImpl.java#L1568-L1570], but if this happens again, it is returned back to the client where it goes to the default case and succeeds.
> Apart from the fact that partial metadata updates are possible leading to orphan metadata rows in system tables, this also wrongly returns success for clients even though there is no record of that table/view being created inside Phoenix's system tables.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)