Byunghwa Yun created NIFI-2858:
----------------------------------
Summary: getSystemLoadAverage of OperatingSystemMXBean sometimes
returns a negative value.
Key: NIFI-2858
URL: https://issues.apache.org/jira/browse/NIFI-2858
Project: Apache NiFi
Issue Type: Bug
Components: Core Framework
Affects Versions: 1.0.0
Reporter: Byunghwa Yun
When NiFi cluster is busy, Sometimes Cluster of Global Menu throws below an
exception.
So, I was tracking that exception to find a problem that getSystemLoadAverage
of OperatingSystemMXBean sometimes returns a negative value.
2016-10-04 14:53:20,488 ERROR [NiFi Web Server-40942]
o.a.nifi.web.api.config.ThrowableMapper An unexpected error has occurred:
java.lang.NullPointerException. Returning Internal Server Error response.
java.lang.NullPointerException: null
at
org.apache.nifi.cluster.manager.StatusMerger.merge(StatusMerger.java:576)
~[nifi-framework-cluster-1.1.0-SNAPSHOT.jar:1.1.0-SNAPSHOT]
at
org.apache.nifi.cluster.manager.StatusMerger.merge(StatusMerger.java:548)
~[nifi-framework-cluster-1.1.0-SNAPSHOT.jar:1.1.0-SNAPSHOT]
at
org.apache.nifi.cluster.coordination.http.endpoints.SystemDiagnosticsEndpointMerger.mergeResponses(SystemDiagnosticsEndpointMerger.java:69)
~[nifi-framework-cluster-1.1.0-SNAPSHOT.jar:1.1.0-SNAPSHOT]
at
org.apache.nifi.cluster.coordination.http.endpoints.SystemDiagnosticsEndpointMerger.mergeResponses(SystemDiagnosticsEndpointMerger.java:31)
~[nifi-framework-cluster-1.1.0-SNAPSHOT.jar:1.1.0-SNAPSHOT]
at
org.apache.nifi.cluster.coordination.http.endpoints.AbstractNodeStatusEndpoint.mergeResponses(AbstractNodeStatusEndpoint.java:41)
~[nifi-framework-cluster-1.1.0-SNAPSHOT.jar:1.1.0-SNAPSHOT]
at
org.apache.nifi.cluster.coordination.http.endpoints.AbstractSingleDTOEndpoint.merge(AbstractSingleDTOEndpoint.java:48)
~[nifi-framework-cluster-1.1.0-SNAPSHOT.jar:1.1.0-SNAPSHOT]
at
org.apache.nifi.cluster.coordination.http.StandardHttpResponseMerger.mergeResponses(StandardHttpResponseMerger.java:179)
~[nifi-framework-cluster-1.1.0-SNAPSHOT.jar:1.1.0-SNAPSHOT]
at
org.apache.nifi.cluster.coordination.http.replication.StandardAsyncClusterResponse.getMergedResponse(StandardAsyncClusterResponse.java:145)
~[nifi-framework-cluster-1.1.0-SNAPSHOT.jar:1.1.0-SNAPSHOT]
at
org.apache.nifi.cluster.coordination.http.replication.StandardAsyncClusterResponse.awaitMergedResponse(StandardAsyncClusterResponse.java:160)
~[nifi-framework-cluster-1.1.0-SNAPSHOT.jar:1.1.0-SNAPSHOT]
at
org.apache.nifi.web.api.SystemDiagnosticsResource.getSystemDiagnostics(SystemDiagnosticsResource.java:141)
~[classes/:na]
at sun.reflect.GeneratedMethodAccessor988.invoke(Unknown Source)
~[na:na]
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
~[na:1.8.0_51]
at java.lang.reflect.Method.invoke(Method.java:497) ~[na:1.8.0_51]
at
com.sun.jersey.spi.container.JavaMethodInvokerFactory$1.invoke(JavaMethodInvokerFactory.java:60)
~[jersey-server-1.19.jar:1.19]
at
com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$ResponseOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:205)
~[jersey-server-1.19.jar:1.19]
at
com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:75)
~[jersey-server-1.19.jar:1.19]
at
com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:302)
~[jersey-server-1.19.jar:1.19]
at
com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:108)
~[jersey-server-1.19.jar:1.19]
at
com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147)
~[jersey-server-1.19.jar:1.19]
at
com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:84)
~[jersey-server-1.19.jar:1.19]
at
com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1542)
[jersey-server-1.19.jar:1.19]
at
com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1473)
[jersey-server-1.19.jar:1.19]
at
com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1419)
[jersey-server-1.19.jar:1.19]
When systemLoad of SystemDiagnosticsFactory is negative, it skips setting
setProcessorLoadAverage of SystemDiagnostics.
if (systemLoad > 0) {
systemDiagnostics.setProcessorLoadAverage(systemLoad);
}
I think to set systemLoad even a negative value.
Thank you.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)