Date: Mon, 25 Sep 2000 00:27:27 -0300 From: Joao Carlos Mendes Luis <jonny@jonny.eng.br> To: Mark Ovens <marko@freebsd.org> Cc: questions@freebsd.org Subject: Re: mktime(3) Y2K bug? Message-ID: <39CEC61F.DD8F23FB@jonny.eng.br> References: <39CD8FD9.F2B7419@jonny.eng.br> <20000924115101.A252@parish> <39CE8C9E.D7FA5FAA@jonny.eng.br> <20000925010622.F255@parish>
next in thread | previous in thread | raw e-mail | index | archive | help
AAAAAAAAAAAAAAAAAAAAAAARGHHHHHHHHHHHH!!!
I found the reason for the "bug". There will be NO 00:01 at Oct 1st
in Brazil. It´s the beginning of Daylight Savings, according to the
current zoneinfo file! Maybe we should just treat this as a feature,
not as a bug... ;-)
Mark Ovens wrote:
>
> On Sun, Sep 24, 2000 at 08:22:06PM -0300, Joao Carlos Mendes Luis wrote:
> > I think I found more info. This seens to happen only with the
> > America/Sao_Paulo zoneinfo into /etc/localtime, and TZ not set. If I
> > change it to GMT+3, it works perfectly. Mark, could you please test
> > this at your machine?
> >
>
> Yes, it looks like the timezone file
> (/usr/share/zoneinfo/America/Sao_Paulo) is broken/corrupt:
>
> /usr/share/zoneinfo/America{127}# tzsetup Sao_Paulo
> /usr/share/zoneinfo/America{128}# date
> Sun 24 Sep 2000 21:01:45 BRT
> /usr/share/zoneinfo/America{129}# /usr/mark/time
> t = -1
> Wed Dec 31 20:59:59 1969
> /usr/share/zoneinfo/America{130}# tzsetup ../GMT
> /usr/share/zoneinfo/America{131}# date
> Mon 25 Sep 2000 00:05:20 GMT
> /usr/share/zoneinfo/America{132}# /usr/mark/time
> t = 970358460
> Sun Oct 1 00:01:00 2000
> /usr/share/zoneinfo/America{133}#
>
> > Mark Ovens wrote:
> > >
> > > On Sun, Sep 24, 2000 at 02:23:37AM -0300, Joao Carlos Mendes Luis wrote:
> > > > Hi,
> > > >
> > > > Try the following piece of code:
> > > >
> > > > #include <time.h>
> > > >
> > > > main()
> > > > {
> > > > struct tm tm;
> > > > time_t t;
> > > >
> > > > bzero( &tm, sizeof tm );
> > > > tm.tm_sec = 0;
> > > > tm.tm_min = 1;
> > > > tm.tm_hour = 0;
> > > > tm.tm_mday = 1;
> > > > tm.tm_mon = 9;
> > > > tm.tm_year = 100;
> > > > tm.tm_isdst = -1;
> > > >
> > > > t = mktime( &tm );
> > > > printf( "t = %ld\n", t );
> > > > printf( "%s", ctime( &t ) );
> > > > }
> > > >
> > > >
> > > > My results:
> > > >
> > > > FreeBSD:
> > > >
> > > > t = -1
> > > > Wed Dec 31 20:59:59 1969
> > > >
> > >
> > > Hmm, what version of FreeBSD? It works OK for me on 4.1-STABLE:
> > >
> > > /usr/marko{52}% cat > foo.c
> > > #include <time.h>
> > >
> > > main()
> > > {
> > > struct tm tm;
> > > time_t t;
> > >
> > > bzero( &tm, sizeof tm );
> > > tm.tm_sec = 0;
> > > tm.tm_min = 1;
> > > tm.tm_hour = 0;
> > > tm.tm_mday = 1;
> > > tm.tm_mon = 9;
> > > tm.tm_year = 100;
> > > tm.tm_isdst = -1;
> > >
> > > t = mktime( &tm );
> > > printf( "t = %ld\n", t );
> > > printf( "%s", ctime( &t ) );
> > > }
> > > /usr/marko{53}% cc -o foo foo.c
> > > /usr/marko{54}% ./foo
> > > t = 970354860
> > > Sun Oct 1 00:01:00 2000
> > > /usr/marko{55}%
> > >
> > > > Solaris:
> > > >
> > > > t = 970369260
> > > > Sun Oct 1 00:01:00 2000
> > > >
> > > > Linux:
> > > >
> > > > t = -1
> > > > Wed Dec 31 20:59:59 1969
> > > >
> > > > If I change tm_year to 99, everything is ok.
> > > >
> > > > Is this a bug, or just something stupid I can´t see at 2am without
> > > > enough coffe?
> > > >
> > > > I found this executing at(1) as "at 10/01/00", if that matters.
> > > >
> > > > TIA,
> > > >
> > > > Jonny
> > > >
> > > > --
> > > > João Carlos Mendes Luís jonny@embratel.net.br
> > > > Networking Engineer jonny@jonny.eng.br
> > > > Internet via Embratel jcml@ieee.org
> > > >
> > > >
> > > > To Unsubscribe: send mail to majordomo@FreeBSD.org
> > > > with "unsubscribe freebsd-questions" in the body of the message
> > >
> > > --
> > > 4.4 - The number of the Beastie
> > > ________________________________________________________________
> > > 51.44°N FreeBSD - The Power To Serve http://www.freebsd.org
> > > 2.057°W My Webpage http://ukug.uk.freebsd.org/~mark
> > > mailto:marko@freebsd.org http://www.radan.com
> >
> > --
> >
> > Jonny
> >
> > --
> > João Carlos Mendes Luís jonny@embratel.net.br
> > Networking Engineer jonny@jonny.eng.br
> > Internet via Embratel jcml@ieee.org
>
> --
> 4.4 - The number of the Beastie
> ________________________________________________________________
> 51.44°N FreeBSD - The Power To Serve http://www.freebsd.org
> 2.057°W My Webpage http://ukug.uk.freebsd.org/~mark
> mailto:marko@freebsd.org http://www.radan.com
--
Jonny
--
João Carlos Mendes Luís jonny@embratel.net.br
Networking Engineer jonny@jonny.eng.br
Internet via Embratel jcml@ieee.org
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?39CEC61F.DD8F23FB>
