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>