You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nifi.apache.org by mc...@apache.org on 2016/10/05 12:59:58 UTC

nifi git commit: NIFI-2858: - getSystemLoadAverage of OperatingSystemMXBean sometimes returns a negative value. - ProcessorLoadAverage sets -1.0. It added a defensive logic. - When load average is zero(load average: 0.00, 0.02, 0.04), systemLoad is zero.

Repository: nifi
Updated Branches:
  refs/heads/master 44cc7e007 -> 2c907c63a


NIFI-2858:
- getSystemLoadAverage of OperatingSystemMXBean sometimes returns a negative value.
- ProcessorLoadAverage sets -1.0. It added a defensive logic.
- When load average is zero(load average: 0.00, 0.02, 0.04), systemLoad is zero.
- This closes #1091


Project: http://git-wip-us.apache.org/repos/asf/nifi/repo
Commit: http://git-wip-us.apache.org/repos/asf/nifi/commit/2c907c63
Tree: http://git-wip-us.apache.org/repos/asf/nifi/tree/2c907c63
Diff: http://git-wip-us.apache.org/repos/asf/nifi/diff/2c907c63

Branch: refs/heads/master
Commit: 2c907c63af921a9968bafd87903c93fe732c692f
Parents: 44cc7e0
Author: Byunghwa Yun <co...@combineads.co.kr>
Authored: Tue Oct 4 15:24:42 2016 +0900
Committer: Matt Gilman <ma...@gmail.com>
Committed: Wed Oct 5 08:59:26 2016 -0400

----------------------------------------------------------------------
 .../java/org/apache/nifi/cluster/manager/StatusMerger.java  | 9 ++++++++-
 .../apache/nifi/diagnostics/SystemDiagnosticsFactory.java   | 4 +++-
 2 files changed, 11 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/nifi/blob/2c907c63/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/StatusMerger.java
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/StatusMerger.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/StatusMerger.java
index 7ad9e84..38caba2 100644
--- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/StatusMerger.java
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/StatusMerger.java
@@ -573,7 +573,14 @@ public class StatusMerger {
         target.setFreeNonHeapBytes(target.getFreeNonHeapBytes() + toMerge.getFreeNonHeapBytes());
         target.setMaxHeapBytes(target.getMaxHeapBytes() + toMerge.getMaxHeapBytes());
         target.setMaxNonHeapBytes(target.getMaxNonHeapBytes() + toMerge.getMaxNonHeapBytes());
-        target.setProcessorLoadAverage(target.getProcessorLoadAverage() + toMerge.getProcessorLoadAverage());
+        double systemLoad = target.getProcessorLoadAverage();
+        double toMergeSystemLoad = toMerge.getProcessorLoadAverage();
+        if (systemLoad >= 0 && toMergeSystemLoad >= 0) {
+            systemLoad += toMergeSystemLoad;
+        } else if (systemLoad < 0 && toMergeSystemLoad >= 0) {
+            systemLoad = toMergeSystemLoad;
+        }
+        target.setProcessorLoadAverage(systemLoad);
         target.setTotalHeapBytes(target.getTotalHeapBytes() + toMerge.getTotalHeapBytes());
         target.setTotalNonHeapBytes(target.getTotalNonHeapBytes() + toMerge.getTotalNonHeapBytes());
         target.setTotalThreads(target.getTotalThreads() + toMerge.getTotalThreads());

http://git-wip-us.apache.org/repos/asf/nifi/blob/2c907c63/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/diagnostics/SystemDiagnosticsFactory.java
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/diagnostics/SystemDiagnosticsFactory.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/diagnostics/SystemDiagnosticsFactory.java
index da3f603..24685e9 100644
--- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/diagnostics/SystemDiagnosticsFactory.java
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/diagnostics/SystemDiagnosticsFactory.java
@@ -67,8 +67,10 @@ public class SystemDiagnosticsFactory {
         systemDiagnostics.setAvailableProcessors(os.getAvailableProcessors());
 
         final double systemLoad = os.getSystemLoadAverage();
-        if (systemLoad > 0) {
+        if (systemLoad >= 0) {
             systemDiagnostics.setProcessorLoadAverage(systemLoad);
+        } else {
+            systemDiagnostics.setProcessorLoadAverage(-1.0);
         }
 
         // get the database disk usage