首页 > 解决方案 > org.voltdb.Distributor.getPartitionKeys 中的 NPE

问题描述

我注册了 jira .. 除了拉取请求之外,我不确定如何报告问题。这里有一个错误,因为 .get() 的结果可以为空。我认为可能有更好的信息可以补充异常情况。

在 org.voltdb.Distributor 中

    if (m_partitionUpdateStatus.get().getStatus() != ClientResponse.SUCCESS) {
        throw new ProcCallException(m_partitionUpdateStatus.get(), null, null);
    }

示例堆栈跟踪

org.voltdb.client.ProcCallException: null
at org.voltdb.client.Distributer.getPartitionKeys(Distributer.java:1561) ~[voltdbclient-8.4.1.jar!/:?]
at org.voltdb.client.ClientImpl.callAllPartitionProcedure(ClientImpl.java:1071) ~[voltdbclient-8.4.1.jar!/:?]
at zipkin2.autoconfigure.storage.voltdb.VoltDBScheduledTasks.processCompleteTraces(VoltDBScheduledTasks.java:54) ~[voltdb.jar!/:?]

标签: voltdb

解决方案


我为此记录了一张错误票:https ://issues.voltdb.com/browse/ENG-15784

如果您捕获到异常,您可以调用 ProcCallException.getClientResponse().getStatusString() 这应该显示为什么客户端无法获取处理 callAllPartitionProcedure() 调用所需的分区键值。

披露:我在 VoltDB 工作


推荐阅读