[ https://issues.apache.org/jira/browse/PHOENIX-5496?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Neha Gupta updated PHOENIX-5496: -------------------------------- Fix Version/s: (was: 5.1.1) (was: 4.15.1) > 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: Sub-task > Affects Versions: 4.15.0, 5.1.0 > Reporter: Chinmay Kulkarni > Assignee: Neha Gupta > Priority: Major > Fix For: 4.16.0 > > 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)