janhoy commented on code in PR #1919:
URL: https://github.com/apache/solr/pull/1919#discussion_r1385668610


##########
solr/core/src/java/org/apache/solr/util/circuitbreaker/CPUCircuitBreaker.java:
##########
@@ -33,39 +35,47 @@
  * We depend on OperatingSystemMXBean which does not allow a configurable 
interval of collection of
  * data.
  */
-public class CPUCircuitBreaker extends CircuitBreaker {
+public class CPUCircuitBreaker extends CircuitBreaker implements SolrCoreAware 
{
   private static final Logger log = 
LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
 
-  private boolean enabled = true;
+  private Boolean enabled = null;
   private double cpuUsageThreshold;
-  private final SolrCore core;
+  private CoreContainer cc;
 
   private static final ThreadLocal<Double> seenCPUUsage = 
ThreadLocal.withInitial(() -> 0.0);
 
   private static final ThreadLocal<Double> allowedCPUUsage = 
ThreadLocal.withInitial(() -> 0.0);
 
-  public CPUCircuitBreaker(SolrCore core) {
+  public CPUCircuitBreaker() {
     super();
-    this.core = core;
+  }
+
+  public CPUCircuitBreaker(CoreContainer coreContainer) {
+    super();
+    this.cc = coreContainer;
   }
 
   @Override
   public void init(NamedList<?> args) {
     super.init(args);
-    double localSeenCPUUsage = calculateLiveCPUUsage();
-
-    if (localSeenCPUUsage < 0) {
-      String msg =
-          "Initialization failure for CPU circuit breaker. Unable to get 
'systemCpuLoad', not supported by the JVM?";
-      if (log.isErrorEnabled()) {
-        log.error(msg);
-      }
-      enabled = false;
-    }
   }
 
   @Override
   public boolean isTripped() {
+    if (enabled == null) {
+      double localSeenCPUUsage = calculateLiveCPUUsage();
+
+      if (localSeenCPUUsage < 0) {
+        String msg =
+            "Initialization failure for CPU circuit breaker. Unable to get 
'systemCpuLoad', not supported by the JVM?";
+        if (log.isErrorEnabled()) {
+          log.error(msg);
+        }
+        enabled = false;
+      } else {
+        enabled = true;
+      }
+    }

Review Comment:
   Indeed



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org
For additional commands, e-mail: issues-h...@solr.apache.org

Reply via email to