Date: Mon, 3 Jan 2000 21:42:15 -0500 (EST) From: "Crist J. Clark" <cjc@cc942873-a.ewndsr1.nj.home.com> To: Alan.Evans@netouch.com (Alan Evans) Cc: freebsd-questions@FreeBSD.ORG Subject: Re: "at 1:30am monday" gives "at: garbled time" after y2k rollover Message-ID: <200001040242.VAA11342@cc942873-a.ewndsr1.nj.home.com> In-Reply-To: <200001032124.NAA12544@r2d2.netouch.net> from Alan Evans at "Jan 3, 2000 01:24:46 pm"
next in thread | previous in thread | raw e-mail | index | archive | help
Alan Evans wrote,
>
> I have several boxes with various versions of FreeBSD
> (2.1, 2.1.6, 2.2.[2678], 3.2) and they all appear to have the
> same problem with the "at" command.
>
> We have our weekly.local script on a 2.2.6 box schedule a
> job to run on Monday morning at 1:30am. The scheduling happens
> at the predictable time on Saturday mornings when /etc/weekly runs.
> The scheduling command looks like this:
>
> at 1:30am Monday <<EOF
> /www/bin/process_logfiles.sh
> EOF
>
>
> Up until this past weekend, this had been working fine (4+ years).
> Starting Saturday morning (1/1/2000), this particular feature of at
> (using day of week) gives back "at: garbled time". The workaround
> has been to change the example above to:
>
> at 1:30am +2 days <<EOF
> /www/bin/process_logfiles.sh
> EOF
>
>
> I tested out OpenBSD 2.6 as well and the bug appears there as well.
>
> FYI,
Cool! A bona fide Y2k bug no one had caught!
From /usr/src/at/parsetime.c,
/*
* assign_date() assigns a date, wrapping to next year if needed
*/
static void
assign_date(struct tm *tm, long mday, long mon, long year)
{
if (year > 99) {
if (year > 1899)
year -= 1900;
else
panic("garbled time");
} ...
Since 'year' is the value of tm_year in a tm structure, the current
value is 100. This registers as a "garbled time." That's actually
quite funny since further down in this function there are specific
mentions of making the function work for >2000.
I don't see a PR for this. Sending one. I'd write a patch, but it
would take me a long time to figure out just how many ways 'year' is
used in this program.
--
Crist J. Clark cjclark@home.com
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-questions" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200001040242.VAA11342>
