You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pulsar.apache.org by GitBox <gi...@apache.org> on 2018/10/03 19:43:05 UTC
[GitHub] merlimat opened a new pull request #2710: Avoid
NullPointerException in ZK server stats collection
merlimat opened a new pull request #2710: Avoid NullPointerException in ZK server stats collection
URL: https://github.com/apache/pulsar/pull/2710
### Motivation
The call to `serverStats().getNumAliveClientConnections()` inside ZK server is throwing NPE in some cases where the `ServerCnxnFactory` is null.
```
22:07:04.269 [qtp33419717-17] WARN org.eclipse.jetty.servlet.ServletHandler - /metrics
java.lang.NullPointerException: null
at org.apache.zookeeper.server.ZooKeeperServer.getNumAliveConnections(ZooKeeperServer.java:883) ~[org.apache.pulsar-pulsar-broker-2.2.0-streamlio-4.jar:2.2.0-streamlio-4]
at org.apache.zookeeper.server.ServerStats.getNumAliveClientConnections(ServerStats.java:90) ~[org.apache.pulsar-pulsar-broker-2.2.0-streamlio-4.jar:2.2.0-streamlio-4]
at org.apache.pulsar.zookeeper.ZooKeeperServerAspect$3.get(ZooKeeperServerAspect.java:74) ~[org.apache.pulsar-pulsar-zookeeper-2.2.0-streamlio-4.jar:2.2.0-streamlio-4]
at io.prometheus.client.Gauge.collect(Gauge.java:295) ~[io.prometheus-simpleclient-0.0.23.jar:?]
at io.prometheus.client.CollectorRegistry$MetricFamilySamplesEnumeration.findNextElement(CollectorRegistry.java:180) ~[io.prometheus-simpleclient-0.0.23.jar:?]
at io.prometheus.client.CollectorRegistry$MetricFamilySamplesEnumeration.nextElement(CollectorRegistry.java:213) ~[io.prometheus-simpleclient-0.0.23.jar:?]
at io.prometheus.client.CollectorRegistry$MetricFamilySamplesEnumeration.nextElement(CollectorRegistry.java:134) ~[io.prometheus-simpleclient-0.0.23.jar:?]
at io.prometheus.client.exporter.common.TextFormat.write004(TextFormat.java:22) ~[io.prometheus-simpleclient_common-0.0.23.jar:?]
at io.prometheus.client.exporter.MetricsServlet.doGet(MetricsServlet.java:43) ~[io.prometheus-simpleclient_servlet-0.0.23.jar:?]
```
This also break the metrics output since it won't print any more metrics after this exception.
### Modifications
Bypass the `ServerStats` object and directly get the info on the `ServerCnxnFactory`, validating that it's not null.
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
With regards,
Apache Git Services