@Override
    public PooledObject<ConfigNodeClient> makeObject(ConfigRegionId configRegionId)
        throws Exception {
      return new DefaultPooledObject<>(
          SyncThriftClientWithErrorHandler.newErrorHandler(
              ConfigNodeClient.class,
              ConfigNodeClient.class.getConstructor(
                  List.class, thriftClientProperty.getClass(), clientManager.getClass()),
              ConfigNodeInfo.getInstance().getLatestConfigNodes(),
              thriftClientProperty,
              clientManager));
    }
The frame of execute RPC, include logic of retry and exception handling.

@param call which rpc should call
@param check check the rpc's result
@return rpc's result
@param <T> the type of rpc result
@throws TException if fails more than RETRY_NUM times, throw TException(MSG_RECONNECTION_FAIL)
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/protocol/client/ConfigNodeClient.java