Cacti / plugin_syslog

Syslog Plugin for Cacti
GNU General Public License v2.0
21 stars 16 forks source link

Program data is not sync with syslog_incoming under PHP 7.2 #97

Closed ddb4github closed 4 years ago

ddb4github commented 5 years ago

Description Uncertain reason, new first program is added with "last_updated='0000-00-00 00:00:00'", then is deleted as soon.

How To Reproduce

  1. Delete all program from syslog_program
  2. Waiting for one or more round syslog_process, and check syslog_program
  3. Delete one program from syslog_program
  4. Waiting for one round syslog_process, "deleted program" is not added back

Suggestion DIff

--- syslog_process.php   2019-07-25 11:20:40.753023061 -0400
+++ syslog_process.php   2019-07-25 11:22:11.684062655 -0400
@@ -212,11 +212,11 @@
 }

 syslog_db_execute('INSERT INTO `' . $syslogdb_default . '`.`syslog_programs`
-   (program)
-   SELECT DISTINCT program
+   (program, last_updated)
+   SELECT DISTINCT program, NOW()
    FROM `' . $syslogdb_default . '`.`syslog_incoming`
    WHERE status=' . $uniqueID . '
-   ON DUPLICATE KEY UPDATE program=VALUES(program), last_updated=NOW()');
+   ON DUPLICATE KEY UPDATE program=VALUES(program), last_updated=VALUES(last_updated)');

 syslog_db_execute('INSERT INTO `' . $syslogdb_default . '`.`syslog_hosts`
    (host, last_updated)

Environment

# php -v
PHP 7.2.11 (cli) (built: Oct  9 2018 15:09:36) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
# mysql --version
mysql  Ver 15.1 Distrib 10.3.11-MariaDB, for Linux (x86_64) using readline 5.1