<div>Hi,</div>
<div>Have not seen anything on this in a bit, is there patch available for this (Version 3.1.2)? I would hate to hit this again next year :)</div>
<div>Take it Easy</div>
<div>Eric<br><br></div>
<div class="gmail_quote">On Tue, Nov 3, 2009 at 8:09 AM, Ton Voon <span dir="ltr"><<a href="mailto:ton.voon@opsera.com">ton.voon@opsera.com</a>></span> wrote:<br>
<blockquote style="BORDER-LEFT: #ccc 1px solid; MARGIN: 0px 0px 0px 0.8ex; PADDING-LEFT: 1ex" class="gmail_quote">Hi Albrecht,<br><br>On 3 Dec 2008, at 20:01, Albrecht Dreß wrote:<br><br>> Am 01.12.08 21:59 schrieb(en) Albrecht Dreß:<br>
>> I have a self-compiled nagios 3.0.5 running on a 64-bit Xeon box<br>>> with Ubuntu 8.04 LTS.  Everything went perfectly (including<br>>> notifications) until I upgraded from 3.0.1 (iirc) to 3.0.5 during a<br>
>> bigger service downtime (inter alia shifting the box into an other<br>>> network etc).<br>><br>> After adding tons of debug messages, I was finally able to track<br>> down the problem.  The problem is that I added a german holiday in<br>
> the form<br>><br>>        october 3       00:00-00:00<br>><br>> In function (all inbase/utils.c) check_time_against_period(), the<br>> start time was calculated by calculate_time_from_day_of_month() as<br>
> 1222988400 (Fri Oct  3 01:00:00 2008), but the end time as<br>> 1222984800 (Fri Oct  3 00:00:00 2008), which is /before/ the start,<br>> and therefore the time span was expanded to a whole year, i.e. the<br>> end now was Oct 3, 2009...<br>
><br>> Looking deeper into function calculate_time_from_day_of_month(),<br>> this is apparently caused by a wrong usage of the call to mktime(),<br>> as the field tm_isdst is /not/ initialised properly.  The observed 1<br>
> hour offset seems to come from an earlier call to this function<br>> which returned an active dst flag.<br>><br>> According to the IEEE Std 1003.1 [1], the field tm_isdst /is/ used<br>> in the time conversion, and should be set to -1 if the dst status is<br>
> unknown (you may want to write a small test app, setting this flag<br>> to -1, 0 or 1 to observe the effect).  As mktime() is used<br>> frequently in the code without properly initialising this field,<br>> this seems to be a systematic bug which can trigger interesting<br>
> effects in nagios.<br>><br>> Any opinions?<br><br>As you are probably aware, this change has caused the DST bug that has<br>affected a lot of users of Nagios 3.2.0.<br><br>I have only reverted one instance of the tm_isdst field, which was<br>
specifically causing the rescheduling problem. There is a testcase in<br>HEAD ( download from <a href="http://nagios.sourceforge.net/download/cvs/nagios-HEAD.tar.gz" target="_blank">http://nagios.sourceforge.net/download/cvs/nagios-HEAD.tar.gz</a><br>
 && ./configure --enable-libtap && make all && make test) which tests<br>the DST bug (see t-tap/check_timeperiods.c).<br><br>However, I think some of the other isdst settings maybe causing other<br>
bugs, though I'm not sure.<br><br>It would be helpful if you could add some test for the problem you<br>have fixed, to prove that the functionality you expect continues to<br>work. I'd be happy to apply to CVS if you have an updated<br>
check_timeperiods.c file.<br><br>Ton<br><br><br>------------------------------------------------------------------------------<br>Come build with us! The BlackBerry(R) Developer Conference in SF, CA<br>is the only developer event you need to attend this year. Jumpstart your<br>
developing skills, take BlackBerry mobile applications to market and stay<br>ahead of the curve. Join us from November 9 - 12, 2009. Register now!<br><a href="http://p.sf.net/sfu/devconference" target="_blank">http://p.sf.net/sfu/devconference</a><br>
_______________________________________________<br>Nagios-users mailing list<br><a href="mailto:Nagios-users@lists.sourceforge.net">Nagios-users@lists.sourceforge.net</a><br><a href="https://lists.sourceforge.net/lists/listinfo/nagios-users" target="_blank">https://lists.sourceforge.net/lists/listinfo/nagios-users</a><br>
::: Please include Nagios version, plugin version (-v) and OS when reporting any issue.<br>::: Messages without supporting info will risk being sent to /dev/null<br><br></blockquote></div><br>