Bug report: downtimes beyond 2038 cause event queue errors

Anton Löfgren alofgren at op5.com
Thu Apr 4 19:51:25 CEST 2013


Hi,

Without having access to a computer, I'd venture a guess that time_t is too
small on centos 5. You might want to compare it to your Debian installation.

I think this is more likely to be a problem with "old glibc" than a problem
with your cpu architecture.

Best regards,
Anton
On 4 Apr 2013 18:55, "Ton Voon" <ton.voon at opsview.com> wrote:

> Hi!
>
> We've come across a problem in an upgrade of Nagios 3 to Nagios 4 which we
> can't work out where the fix is. It occurs when an event is scheduled in
> the future beyond 2038.
>
> Recreation steps:
>   * Set a downtime on a service to end next day
>   * Stop Nagios
>   * Edit the retention.dat so that the end_date=4514791088 (some other
> values seem to work)
>   * Start Nagios
>
> When Nagios starts, it will not run any scheduled events in the events
> queue.
>
> This fails on CentOS 5 64bit, though appears to work on Debian Squeeze
> 32bit, so it maybe a 64 bit only issue.
>
> We think this is an issue when the event is scheduled via squeue_add().
> We've managed to get the test-squeue to fail by changing the time value to
> be greater than 2038 with the following:
>
> Index: test-squeue.c
> ===================================================================
> --- test-squeue.c       (revision 2716)
> +++ test-squeue.c       (working copy)
> @@ -116,7 +116,7 @@
>         sq_test_random(sq);
>         t(squeue_size(sq) == 0, "Size should be 0 after first
> sq_test_random");
>
> -       t((a.evt = squeue_add(sq, time(NULL) + 9, &a)) != NULL);
> +       t((a.evt = squeue_add(sq, time(NULL)*2, &a)) != NULL);
>         t(squeue_size(sq) == 1);
>         t((b.evt = squeue_add(sq, time(NULL) + 3, &b)) != NULL);
>         t(squeue_size(sq) == 2);
>
> This gives the test result of:
>
> ### squeue tests
>   FAIL max <= *d @test-squeue.c:86
>   FAIL x == &b @test-squeue.c:133
>   FAIL x->id == b.id @test-squeue.c:134
>   FAIL x == &c @test-squeue.c:141
> about to fail pretty fucking hard...
> ea: 0xbfe065e0; &b: 0xbfe065d8; &c: 0xbfe065d0; ed: 0xbfe065c8; x:
> 0xbfde9b80
>   FAIL x == &b @test-squeue.c:152
>   FAIL x->id == b.id @test-squeue.c:153
>   FAIL x == &b @test-squeue.c:160
>   FAIL x->id == b.id @test-squeue.c:161
>   FAIL x == &c @test-squeue.c:166
>   FAIL x->id == c.id @test-squeue.c:167
> Test results: 390637 passed, 10 failed
>
> Changing to a factor of 1.1 instead of 2 passes:
>
> ### squeue tests
> Test results: 390647 passed, 0 failed
>
> This worked in Nagios 3, so we're guessing that the change to use the
> squeue library for events is probably where this limitation has come in.
>
> Any thoughts?
>
> Ton
>
>
>
> ------------------------------------------------------------------------------
> Minimize network downtime and maximize team effectiveness.
> Reduce network management and security costs.Learn how to hire
> the most talented Cisco Certified professionals. Visit the
> Employer Resources Portal
> http://www.cisco.com/web/learning/employer_resources/index.html
> _______________________________________________
> Nagios-devel mailing list
> Nagios-devel at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/nagios-devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://www.monitoring-lists.org/archive/developers/attachments/20130404/52d57c1a/attachment.html>
-------------- next part --------------
------------------------------------------------------------------------------
Minimize network downtime and maximize team effectiveness.
Reduce network management and security costs.Learn how to hire 
the most talented Cisco Certified professionals. Visit the 
Employer Resources Portal
http://www.cisco.com/web/learning/employer_resources/index.html
-------------- next part --------------
_______________________________________________
Nagios-devel mailing list
Nagios-devel at lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/nagios-devel


More information about the Developers mailing list