[ https://issues.apache.org/jira/browse/PHOENIX-5496?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Neha Gupta updated PHOENIX-5496: -------------------------------- Attachment: PHOENIX-5496.v3.patch > Ensure that we handle all server-side mutation codes on the client > ------------------------------------------------------------------ > > 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.patch, PHOENIX-5496.v1.patch, > PHOENIX-5496.v2.patch, PHOENIX-5496.v3.patch > > Time Spent: 3h > 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)