Browse Source

fix DAEMON_SLEEP_INTERVAL not being defined when used
enforce minimum 60 sec spawn/sleep interval in update processes

Andrew Dolgov 2 years ago
parent
commit
4fd0790804
4 changed files with 16 additions and 7 deletions
  1. 0 5
      classes/rssutils.php
  2. 6 0
      include/functions.php
  3. 6 2
      update.php
  4. 4 0
      update_daemon2.php

+ 0 - 5
classes/rssutils.php

@@ -1,9 +1,4 @@
 <?php
-define_default('DAEMON_UPDATE_LOGIN_LIMIT', 30);
-define_default('DAEMON_FEED_LIMIT', 500);
-define_default('DAEMON_SLEEP_INTERVAL', 120);
-define_default('_MIN_CACHE_FILE_SIZE', 1024);
-
 class RSSUtils {
 	static function calculate_article_hash($article, $pluginhost) {
 		$tmp = "";

+ 6 - 0
include/functions.php

@@ -53,6 +53,12 @@
 	// How many seconds to wait for initial response from website when
 	// fetching files from remote sites
 
+	// feed updating stuff
+	define_default('DAEMON_UPDATE_LOGIN_LIMIT', 30);
+	define_default('DAEMON_FEED_LIMIT', 500);
+	define_default('DAEMON_SLEEP_INTERVAL', 120);
+	define_default('_MIN_CACHE_FILE_SIZE', 1024);
+
 	if (DB_TYPE == "pgsql") {
 		define('SUBSTRING_FOR_DATE', 'SUBSTRING_FOR_DATE');
 	} else {

+ 6 - 2
update.php

@@ -181,8 +181,12 @@
          $log = isset($options['log']) ? '--log '.$options['log'] : '';
 
 			passthru(PHP_EXECUTABLE . " " . $argv[0] ." --daemon-loop $quiet $log");
-			_debug("Sleeping for " . DAEMON_SLEEP_INTERVAL . " seconds...");
-			sleep(DAEMON_SLEEP_INTERVAL);
+
+			// let's enforce a minimum spawn interval as to not forkbomb the host
+			$spawn_interval = max(60, DAEMON_SLEEP_INTERVAL);
+
+			_debug("Sleeping for $spawn_interval seconds...");
+			sleep($spawn_interval);
 		}
 	}
 

+ 4 - 0
update_daemon2.php

@@ -166,6 +166,10 @@
 		$spawn_interval = SPAWN_INTERVAL;
 	}
 
+	// let's enforce a minimum spawn interval as to not forkbomb the host
+	$spawn_interval = max(60, $spawn_interval);
+	_debug("Spawn interval: $spawn_interval sec");
+
 	if (isset($options["log"])) {
 		_debug("Logging to " . $options["log"]);
 		define('LOGFILE', $options["log"]);