]> git.mxchange.org Git - friendica.git/commitdiff
Sometimes the function "sys_getloadavg" doesn't return an array. This is a workaround.
authorMichael Vogel <icarus@dabo.de>
Tue, 15 Dec 2015 22:26:58 +0000 (23:26 +0100)
committerMichael Vogel <icarus@dabo.de>
Tue, 15 Dec 2015 22:26:58 +0000 (23:26 +0100)
boot.php
include/cron.php
include/cronhooks.php
include/delivery.php
include/discover_poco.php
include/poller.php
index.php

index 05a334a1fa50ddd33ef1fb08a4194dbebcdb7e6d..cc56949009fbaffe67bd2cc2d40422b375b407ad 100644 (file)
--- a/boot.php
+++ b/boot.php
@@ -1948,3 +1948,15 @@ function validate_include(&$file) {
 
        return true;
 }
+
+function current_load() {
+       if (!function_exists('sys_getloadavg'))
+               return false;
+
+       $load_arr = sys_getloadavg();
+
+       if (!is_array($load_arr))
+               return false;
+
+       return max($load_arr);
+}
index 8bf168ed50d02f9764b6788ea9b89aa1925113b3..18674817d359ee56eec9a17b4ad20707c345f9ba 100644 (file)
@@ -44,10 +44,11 @@ function cron_run(&$argv, &$argc){
        $maxsysload = intval(get_config('system','maxloadavg'));
        if($maxsysload < 1)
                $maxsysload = 50;
-       if(function_exists('sys_getloadavg')) {
-               $load = sys_getloadavg();
-               if(intval($load[0]) > $maxsysload) {
-                       logger('system: load ' . $load[0] . ' too high. cron deferred to next scheduled run.');
+
+       $load = current_load();
+       if($load) {
+               if(intval($load) > $maxsysload) {
+                       logger('system: load ' . $load . ' too high. cron deferred to next scheduled run.');
                        return;
                }
        }
index d5b4f3bf6f1b4f07974f409f44d987f809a86854..8c70008e453c913e9318184ed859e161ed68eb6a 100644 (file)
@@ -27,10 +27,11 @@ function cronhooks_run(&$argv, &$argc){
        $maxsysload = intval(get_config('system','maxloadavg'));
        if($maxsysload < 1)
                $maxsysload = 50;
-       if(function_exists('sys_getloadavg')) {
-               $load = sys_getloadavg();
-               if(intval($load[0]) > $maxsysload) {
-                       logger('system: load ' . $load[0] . ' too high. Cronhooks deferred to next scheduled run.');
+
+       $load = current_load();
+       if($load) {
+               if(intval($load) > $maxsysload) {
+                       logger('system: load ' . $load . ' too high. Cronhooks deferred to next scheduled run.');
                        return;
                }
        }
index dc02faaba8e03d1957797861a6cd4a0ee9defa59..4d87b8bb74b39a7712576890834194783938ccbd 100644 (file)
@@ -58,10 +58,11 @@ function delivery_run(&$argv, &$argc){
                $maxsysload = intval(get_config('system','maxloadavg'));
                if($maxsysload < 1)
                        $maxsysload = 50;
-               if(function_exists('sys_getloadavg')) {
-                       $load = sys_getloadavg();
-                       if(intval($load[0]) > $maxsysload) {
-                               logger('system: load ' . $load[0] . ' too high. Delivery deferred to next queue run.');
+
+               $load = current_load();
+               if($load) {
+                       if(intval($load) > $maxsysload) {
+                               logger('system: load ' . $load . ' too high. Delivery deferred to next queue run.');
                                return;
                        }
                }
index a8e7ec64d04743a44e8ddd68bfe6858756ad2a6d..6293317d3f4401e9ec71b0fe213f14ad669193e9 100644 (file)
@@ -28,10 +28,11 @@ function discover_poco_run(&$argv, &$argc){
        $maxsysload = intval(get_config('system','maxloadavg'));
        if($maxsysload < 1)
                $maxsysload = 50;
-       if(function_exists('sys_getloadavg')) {
-               $load = sys_getloadavg();
-               if(intval($load[0]) > $maxsysload) {
-                       logger('system: load ' . $load[0] . ' too high. discover_poco deferred to next scheduled run.');
+
+       $load = current_load();
+       if($load) {
+               if(intval($load) > $maxsysload) {
+                       logger('system: load ' . $load . ' too high. discover_poco deferred to next scheduled run.');
                        return;
                }
        }
index 8c102a66b99bd6066010c5df7f2761362d6833ed..fd6f3922aa925f5d0dcbd6178528b5a1b610a04a 100644 (file)
@@ -26,14 +26,14 @@ function poller_run(&$argv, &$argc){
                unset($db_host, $db_user, $db_pass, $db_data);
        };
 
-       if(function_exists('sys_getloadavg')) {
+       $load = current_load();
+       if($load) {
                $maxsysload = intval(get_config('system','maxloadavg'));
                if($maxsysload < 1)
                        $maxsysload = 50;
 
-               $load = sys_getloadavg();
-               if(intval($load[0]) > $maxsysload) {
-                       logger('system: load ' . $load[0] . ' too high. poller deferred to next scheduled run.');
+               if(intval($load) > $maxsysload) {
+                       logger('system: load ' . $load . ' too high. poller deferred to next scheduled run.');
                        return;
                }
        }
@@ -134,9 +134,8 @@ function poller_too_much_workers($stage) {
        $active = poller_active_workers();
 
        // Decrease the number of workers at higher load
-       if(function_exists('sys_getloadavg')) {
-               $load = max(sys_getloadavg());
-
+       $load = current_load();
+       if($load) {
                $maxsysload = intval(get_config('system','maxloadavg'));
                if($maxsysload < 1)
                        $maxsysload = 50;
index 9fe248e8e2b5329f3b67503a75c74e9a2bc6ef3b..89ed058465db00a7e7e9177e65632d95b6042b85 100644 (file)
--- a/index.php
+++ b/index.php
@@ -56,10 +56,11 @@ if(!$install) {
        $maxsysload_frontend = intval(get_config('system','maxloadavg_frontend'));
        if($maxsysload_frontend < 1)
                $maxsysload_frontend = 50;
-       if(function_exists('sys_getloadavg')) {
-               $load = sys_getloadavg();
-               if(intval($load[0]) > $maxsysload_frontend) {
-                       logger('system: load ' . $load[0] . ' too high. Service Temporarily Unavailable.');
+
+       $load = current_load();
+       if($load) {
+               if($load > $maxsysload_frontend) {
+                       logger('system: load ' . $load . ' too high. Service Temporarily Unavailable.');
                        header($_SERVER["SERVER_PROTOCOL"].' 503 Service Temporarily Unavailable');
                        header('Retry-After: 300');
                        die("System is currently unavailable. Please try again later");