[Pkg-nagios-devel] Bug#292406: nagios-mysql: mysql error: Column 'last_log_rotation' cannot be null
Brian May
Brian May <bam@debian.org>, 292406@bugs.debian.org
Thu, 27 Jan 2005 08:21:34 +1100
Package: nagios-mysql
Version: 2:1.3-0+pre6
Severity: important
I suddenly noticed lots of messages of the following in my
/var/log/messages file:
Jan 27 08:12:40 snoopy nagios: Error: Could not insert/update status
record for program in table 'programstatus' of database 'nagios'
I found the SQL query used in my mysql log files and re-executed
one by hand:
mysql> INSERT INTO programstatus (last_update,program_start,nagios_pid,daemon_mode,last_command_check,last_log_rotation,enable_notifications,execute_service_checks,accept_passive_service_checks,enable_event_handlers,obsess_over_services,enable_flap_detection,enable_failure_prediction,process_performance_data) VALUES (FROM_UNIXTIME(1106773720),FROM_UNIXTIME(1106772535),'3444','0',FROM_UNIXTIME(1106773719),FROM_UNIXTIME(0),'1','1','1','1','0','0','1','0')
-> ;
ERROR 1048: Column 'last_log_rotation' cannot be null
This restriction comes from /usr/share/doc/nagios-mysql/create_mysql.gz:
CREATE TABLE programstatus (
last_update datetime DEFAULT '0000-00-00 00:00:00' NOT NULL,
program_start datetime DEFAULT '0000-00-00 00:00:00' NOT NULL,
daemon_mode tinyint(4) DEFAULT '0' NOT NULL,
nagios_pid int(11) DEFAULT '0' NOT NULL,
last_command_check datetime DEFAULT '0000-00-00 00:00:00' NOT NULL,
last_log_rotation datetime DEFAULT '0000-00-00 00:00:00' NOT NULL,
execute_service_checks tinyint(4) DEFAULT '0' NOT NULL,
accept_passive_service_checks tinyint(4) DEFAULT '0' NOT NULL,
enable_event_handlers tinyint(4) DEFAULT '0' NOT NULL,
obsess_over_services tinyint(4) DEFAULT '0' NOT NULL,
enable_flap_detection tinyint(4) DEFAULT '0' NOT NULL,
enable_notifications tinyint(4) DEFAULT '0' NOT NULL,
enable_failure_prediction tinyint(4) DEFAULT '0' NOT NULL,
process_performance_data tinyint(4) DEFAULT '0' NOT NULL
);
If I got this right (please check), the sql query sets last_log_rotation to
FROM_UNIXTIME(0). I am not sure if this was intended or not.
On one hand, I don't understand why this is getting interpreted as a NULL
value by mysql, on the other hand maybe this would be an ideal situation to
use a NULL value instead of insesrting an invalid time.
-- System Information:
Debian Release: 3.1
APT prefers testing
APT policy: (500, 'testing')
Architecture: i386 (i686)
Kernel: Linux 2.4.26
Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968)
Versions of packages nagios-mysql depends on:
ii libc6 2.3.2.ds1-20 GNU C Library: Shared libraries an
ii libgd2-xpm 2.0.33-1.1 GD Graphics Library version 2
ii libjpeg62 6b-9 The Independent JPEG Group's JPEG
ii libmysqlclient10 3.23.56-2 LGPL-licensed client library for M
ii libpng12-0 1.2.8rel-1 PNG library - runtime
ii nagios-common 2:1.3-0+pre6 A host/service/network monitoring
ii zlib1g 1:1.2.2-3 compression library - runtime
-- debconf information excluded