[ https://issues.apache.org/jira/browse/PHOENIX-6448?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Chen Feng updated PHOENIX-6448: ------------------------------- Description: in ConnectionQueryServicesImpl.init() In some cases(e.g. the user has not permissions to create SYSTEM.CATALOG), there's only LOGGER.WARN and return null directly. {code:java} // Some comments here { ... if (inspectIfAnyExceptionInChain(e, Collections.<Class<? extends Exception>> singletonList(AccessDeniedException.class))) { // Pass LOGGER.warn("Could not check for Phoenix SYSTEM tables," + " assuming they exist and are properly configured"); checkClientServerCompatibility(SchemaUtil.getPhysicalName(SYSTEM_CATALOG_NAME_BYTES, getProps()).getName()); success = true; } ... return null; } ... scheduleRenewLeaseTasks(); {code} Therefore, the following scheduleRenewLeaseTasks will be skipped and no exception is thrown. 1. scheduleRenewLeaseTasks not called 2. no renew task started 3. queries will call PhoenixConection.addIteratorForLeaseRenewal() as usual 4. the scannerQueue is unlimited therefore it will always adding new items. 5. Full GC. was: in ConnectionQueryServicesImpl.init() In some cases(e.g. the user has not permissions to create SYSTEM.CATALOG), there's only LOGGER.WARN and return null directly. {code:java} // Some comments here if (inspectIfAnyExceptionInChain(e, Collections .<Class<? extends Exception>> singletonList(AccessDeniedException.class))) { // Pass LOGGER.warn("Could not check for Phoenix SYSTEM tables," + " assuming they exist and are properly configured"); checkClientServerCompatibility(SchemaUtil.getPhysicalName(SYSTEM_CATALOG_NAME_BYTES, getProps()).getName()); success = true; } ... return null{code} Therefore, the following scheduleRenewLeaseTasks will be skipped and no exception is thrown. 1. scheduleRenewLeaseTasks not called 2. no renew task started 3. query will call PhoenixConection.addIteratorForLeaseRenewal() as usual 4. the scannerQueue is unlimited therefore it will always adding new items. 5. Full GC. > ConnectionQueryServicesImpl init failure may cause Full GC. > ----------------------------------------------------------- > > Key: PHOENIX-6448 > URL: https://issues.apache.org/jira/browse/PHOENIX-6448 > Project: Phoenix > Issue Type: Bug > Reporter: Chen Feng > Priority: Major > > in ConnectionQueryServicesImpl.init() > In some cases(e.g. the user has not permissions to create SYSTEM.CATALOG), > there's only LOGGER.WARN and return null directly. > {code:java} > // Some comments here > { > ... > if (inspectIfAnyExceptionInChain(e, Collections.<Class<? extends > Exception>> singletonList(AccessDeniedException.class))) { > // Pass > LOGGER.warn("Could not check for Phoenix SYSTEM tables," + > " assuming they exist and are properly configured"); > > checkClientServerCompatibility(SchemaUtil.getPhysicalName(SYSTEM_CATALOG_NAME_BYTES, > getProps()).getName()); > success = true; > } > ... > return null; > } > ... > scheduleRenewLeaseTasks(); > {code} > Therefore, the following scheduleRenewLeaseTasks will be skipped and no > exception is thrown. > > 1. scheduleRenewLeaseTasks not called > 2. no renew task started > 3. queries will call PhoenixConection.addIteratorForLeaseRenewal() as usual > 4. the scannerQueue is unlimited therefore it will always adding new items. > 5. Full GC. -- This message was sent by Atlassian Jira (v8.3.4#803005)