Jacob Isaac created PHOENIX-6687: ------------------------------------ Summary: The region server hosting the SYSTEM.CATALOG fails to serve any metadata requests as handler pools are exhausted. Key: PHOENIX-6687 URL: https://issues.apache.org/jira/browse/PHOENIX-6687 Project: Phoenix Issue Type: Bug Components: core Affects Versions: 4.16.1, 5.2.0 Reporter: Jacob Isaac Fix For: 4.17.0, 5.2.0
When SYSTEM.CATALOG region server is restarted and the server is experiencing heavy metadata call volume. The stack traces indicate that all the default handler pool threads are waiting for the CQSI.init thread to finish initializing. The CQSI.init thread itself cannot proceed since it cannot complete the second RPC call (org.apache.phoenix.query.ConnectionQueryServicesImpl.checkClientServerCompatibility) due to thread starvation. For e.g The following [code|https://github.com/apache/phoenix/blob/3cff97087d79b85e282fca4ac69ddf499fb1f40f/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/MetaDataEndpointImpl.java#L661] turned the getTable(..) into needing an additional server-to-server RPC call when initializing a PhoenixConnection (CQSI.init) for the first time on the JVM. It is well-known that server-to-server RPC calls are prone to deadlocking due to thread pool exhaustion. -- This message was sent by Atlassian Jira (v8.20.1#820001)