[ 
https://issues.apache.org/jira/browse/NIFI-2858?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Byunghwa Yun updated NIFI-2858:
-------------------------------
    Description: 
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 when getSystemLoadAverage returns a negative value, systemLoad sets 
-1.0.

Thank you.

  was:
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 when getSystemLoadAverage returns a negative value, systemLoad sets 1.

Thank you.


> 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.1.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 when getSystemLoadAverage returns a negative value, systemLoad sets 
> -1.0.
> Thank you.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to