Thread: Windows Vista support (Buildfarm Vaquita)

Windows Vista support (Buildfarm Vaquita)

From
Dave Page
Date:
Hi,

I asked about this before, but the thread got hijacked to discuss 
another buildfarm failure :-(. Currently our only Windows Vista 
buildfarm member (Vaquita) fails every time (assuming it gets that far) 
on ECPG's dt_test and update tests.

I've checked the FS permissions, and see no obvious reason why the tests 
would fail, and I've tried running the tests manually and see them fail 
as well.

Can someone suggest what I might try next to resolve this? I don't 
really have the spare time to spend figuring out ECPG at the moment.

http://www.pgbuildfarm.org/cgi-bin/show_log.pl?nm=vaquita&dt=2007-05-07%2020:00:05

Regards, Dave.


Re: Windows Vista support (Buildfarm Vaquita)

From
Michael Meskes
Date:
On Wed, May 09, 2007 at 09:21:59AM +0100, Dave Page wrote:
> I asked about this before, but the thread got hijacked to discuss 
> another buildfarm failure :-(. Currently our only Windows Vista 
> buildfarm member (Vaquita) fails every time (assuming it gets that far) 
> on ECPG's dt_test and update tests.

Dave, could you please run

insert into date_test ( d  , ts  ) values (  date '1966-01-17' ,
timestamp '2000-07-12 17:34:29' ); 

on the Vista system and then select * from date_test;?

According to the logs the insert runs successfully but the select gives
an invalid date format. Interestingly the date argument is displayed
correctly but the timestamp argument throws the invalid date error,
which does not really make sense. 

Unfortunately I do not have access to a Vista system I could use to test
and track this one down.

As far as the other message is concerned I'm at a loss. It simply
refuses to run the sql/update script. No idea why.

Michael
-- 
Michael Meskes
Email: Michael at Fam-Meskes dot De, Michael at Meskes dot (De|Com|Net|Org)
ICQ: 179140304, AIM/Yahoo: michaelmeskes, Jabber: meskes@jabber.org
Go SF 49ers! Go Rhein Fire! Use Debian GNU/Linux! Use PostgreSQL!


Re: Windows Vista support (Buildfarm Vaquita)

From
Dave Page
Date:
Michael Meskes wrote:
> Dave, could you please run
> 
> insert into date_test ( d  , ts  ) values (  date '1966-01-17' ,
> timestamp '2000-07-12 17:34:29' ); 
> 
> on the Vista system and then select * from date_test;?
> 
> According to the logs the insert runs successfully but the select gives
> an invalid date format. Interestingly the date argument is displayed
> correctly but the timestamp argument throws the invalid date error,
> which does not really make sense. 

I had to create the table manually of course, so copying what the code 
seems to do, I get:

regress1=# create table date_test (d date, ts timestamp);
CREATE TABLE
regress1=# set datestyle to iso;
SET
regress1=# insert into date_test(d, ts) values (date '1966-01-17', 
timestamp '2000-07-12 17:34:29');
INSERT 0 1
regress1=# select * from date_test;     d      |         ts
------------+--------------------- 1966-01-17 | 2000-07-12 17:34:29
(1 row)

Which looks OK to me :-(

> Unfortunately I do not have access to a Vista system I could use to test
> and track this one down.

I'm happy to run any tests you like.

> As far as the other message is concerned I'm at a loss. It simply
> refuses to run the sql/update script. No idea why.

Oh, hang on... Vista's new 'security' features include popups that ask 
permission from the user before running any installers. One of the more 
basic checks they use is the filename - *anything* called setup.exe will 
cause user confirmation to be required before it will run. I believe for 
non-interactive sessions it'll just refuse to run. I just tried running 
update.exe myself, and yes, you guessed it, a user confirmation dialog 
popped up :-(

Can we rename the test please?

Regards, Dave.


Re: Windows Vista support (Buildfarm Vaquita)

From
Peter Eisentraut
Date:
Am Mittwoch, 9. Mai 2007 13:46 schrieb Dave Page:
> Can we rename the test please?

I'm thinking no.  Brain-dead systems should produce brain-dead test results.

-- 
Peter Eisentraut
http://developer.postgresql.org/~petere/


Re: Windows Vista support (Buildfarm Vaquita)

From
Dave Page
Date:
Peter Eisentraut wrote:
> Am Mittwoch, 9. Mai 2007 13:46 schrieb Dave Page:
>> Can we rename the test please?
> 
> I'm thinking no.  Brain-dead systems should produce brain-dead test results.
> 

And that helps us how exactly, on what will probably be the most widely 
used OS in the world within a few years?

Regards, Dave.


Re: Windows Vista support (Buildfarm Vaquita)

From
Andrew Dunstan
Date:

Peter Eisentraut wrote:
> Am Mittwoch, 9. Mai 2007 13:46 schrieb Dave Page:
>   
>> Can we rename the test please?
>>     
>
> I'm thinking no.  Brain-dead systems should produce brain-dead test results.
>
>   

Not doing this would seem like sheer bloody-mindedness. We have 
workarounds for craziness on many systems. Not providing for this will 
mean that we have to disable the ECPG tests for Vista. I don't see how 
that helps anyone.

More seriously, we need to get the ECPG regression test rewritten in C, 
as was done for the main line regression tests. Maybe we need to factor 
out some of that into a library so the common code can be used in both 
programs. At any rate, until this is done we can't run the ECPG tests on 
MSVC builds.

cheers

andrew


Re: Windows Vista support (Buildfarm Vaquita)

From
Magnus Hagander
Date:
On Wed, May 09, 2007 at 08:40:24AM -0400, Andrew Dunstan wrote:
> 
> 
> Peter Eisentraut wrote:
> >Am Mittwoch, 9. Mai 2007 13:46 schrieb Dave Page:
> >  
> >>Can we rename the test please?
> >>    
> >
> >I'm thinking no.  Brain-dead systems should produce brain-dead test 
> >results.
> >
> >  
> 
> Not doing this would seem like sheer bloody-mindedness. We have 
> workarounds for craziness on many systems. Not providing for this will 
> mean that we have to disable the ECPG tests for Vista. I don't see how 
> that helps anyone.

Agreed.

> More seriously, we need to get the ECPG regression test rewritten in C, 
> as was done for the main line regression tests. Maybe we need to factor 
> out some of that into a library so the common code can be used in both 
> programs. At any rate, until this is done we can't run the ECPG tests on 
> MSVC builds.

IIRC, Joachim has at least started work on that. (Unrelated to vista - ecpg
tests are broken on both mingw and msvc for vista)

//Magnus



On 5/9/2007 7:46 AM Dave Page wrote:

> Oh, hang on... Vista's new 'security' features include popups that ask 
> permission from the user before running any installers. One of the more 
> basic checks they use is the filename - *anything* called setup.exe will 
> cause user confirmation to be required before it will run. I believe for 
> non-interactive sessions it'll just refuse to run. I just tried running 
> update.exe myself, and yes, you guessed it, a user confirmation dialog 
> popped up :-(

You can just disable that "feature" by turning off "User Account Control" under the Windows Security Center...


Ned Lilly wrote:
> On 5/9/2007 7:46 AM Dave Page wrote:
> 
>> Oh, hang on... Vista's new 'security' features include popups that ask 
>> permission from the user before running any installers. One of the 
>> more basic checks they use is the filename - *anything* called 
>> setup.exe will cause user confirmation to be required before it will 
>> run. I believe for non-interactive sessions it'll just refuse to run. 
>> I just tried running update.exe myself, and yes, you guessed it, a 
>> user confirmation dialog popped up :-(
> 
> You can just disable that "feature" by turning off "User Account 
> Control" under the Windows Security Center...

Yeah, I know, but that's not really a solution we can live with.

Regards, Dave.


Re: Windows Vista support (Buildfarm Vaquita)

From
Michael Meskes
Date:
On Wed, May 09, 2007 at 12:46:52PM +0100, Dave Page wrote:
> Oh, hang on... Vista's new 'security' features include popups that ask 
> permission from the user before running any installers. One of the more 
> basic checks they use is the filename - *anything* called setup.exe will 
> cause user confirmation to be required before it will run. I believe for 
> non-interactive sessions it'll just refuse to run. I just tried running 
> update.exe myself, and yes, you guessed it, a user confirmation dialog 
> popped up :-(

Seems to be a little bit braindead to me. But anyway, I renamed it and
just committed the changes. Let's see if this works. 

Michael

P.S.: More on the other problem later.
-- 
Michael Meskes
Email: Michael at Fam-Meskes dot De, Michael at Meskes dot (De|Com|Net|Org)
ICQ: 179140304, AIM/Yahoo: michaelmeskes, Jabber: meskes@jabber.org
Go SF 49ers! Go Rhein Fire! Use Debian GNU/Linux! Use PostgreSQL!


Re: Windows Vista support (Buildfarm Vaquita)

From
Dave Page
Date:
Michael Meskes wrote:
> On Wed, May 09, 2007 at 12:46:52PM +0100, Dave Page wrote:
>> Oh, hang on... Vista's new 'security' features include popups that ask 
>> permission from the user before running any installers. One of the more 
>> basic checks they use is the filename - *anything* called setup.exe will 
>> cause user confirmation to be required before it will run. I believe for 
>> non-interactive sessions it'll just refuse to run. I just tried running 
>> update.exe myself, and yes, you guessed it, a user confirmation dialog 
>> popped up :-(
> 
> Seems to be a little bit braindead to me. 

Yeah - according to Microsoft we should include a manifest with the
executable these days that can prevent the check by specifying that
administrative privileges won't be needed by the executable - but that
involves us adding version resources to the exe, and generating the
manifest during build which seems somewhat over the top for a quick
regression test.

> But anyway, I renamed it and
> just committed the changes. Let's see if this works. 

Thanks.

> P.S.: More on the other problem later.

OK.

Regards, Dave.


Re: Windows Vista support (Buildfarm Vaquita)

From
Michael Meskes
Date:
On Thu, May 10, 2007 at 11:05:39AM +0100, Dave Page wrote:
> > P.S.: More on the other problem later.
> 
> OK.

Dave, I just committed some small changes to get additional error
logging. Hopefully this enables me to find out where exactly the error
is coming up. If possible could you please restart a run on vista?

Thanks

Michael
-- 
Michael Meskes
Email: Michael at Fam-Meskes dot De
ICQ: 179140304, AIM/Yahoo: michaelmeskes, Jabber: meskes@jabber.org
Go SF 49ers! Go Rhein Fire! Use Debian GNU/Linux! Use PostgreSQL!


Re: Windows Vista support (Buildfarm Vaquita)

From
Dave Page
Date:
Michael Meskes wrote:
> On Thu, May 10, 2007 at 11:05:39AM +0100, Dave Page wrote:
>>> P.S.: More on the other problem later.
>> OK.
> 
> Dave, I just committed some small changes to get additional error
> logging. Hopefully this enables me to find out where exactly the error
> is coming up. If possible could you please restart a run on vista?

Running now - I won't have access to the machine again until Monday now
though.

Regards, Dave


Re: Windows Vista support (Buildfarm Vaquita)

From
Dave Page
Date:
Dave Page wrote:
> Michael Meskes wrote:
>> On Thu, May 10, 2007 at 11:05:39AM +0100, Dave Page wrote:
>>>> P.S.: More on the other problem later.
>>> OK.
>> Dave, I just committed some small changes to get additional error
>> logging. Hopefully this enables me to find out where exactly the error
>> is coming up. If possible could you please restart a run on vista?
> 
> Running now - I won't have access to the machine again until Monday now
> though.

It's passing what was the update test now which is good - thanks :-).

Here's the results of the run, showing just the dt_test
failure:http://www.pgbuildfarm.org/cgi-bin/show_log.pl?nm=vaquita&dt=2007-05-10%2015:55:16

Regards, Dave.


Re: Windows Vista support (Buildfarm Vaquita)

From
Michael Meskes
Date:
On Wed, May 09, 2007 at 12:46:52PM +0100, Dave Page wrote:
> >Unfortunately I do not have access to a Vista system I could use to test
> >and track this one down.
>
> I'm happy to run any tests you like.

Dave, could you please apply this small patch to pgtypeslib/datetime.c.
I still have no clue where the error code is comming from and I'm trying
to narrow it down a bit.

Thanks.

Michael
--
Michael Meskes
Email: Michael at Fam-Meskes dot De, Michael at Meskes dot (De|Com|Net|Org)
ICQ: 179140304, AIM/Yahoo: michaelmeskes, Jabber: meskes@jabber.org
Go SF 49ers! Go Rhein Fire! Use Debian GNU/Linux! Use PostgreSQL!

Attachment

Re: Windows Vista support (Buildfarm Vaquita)

From
Dave Page
Date:
Michael Meskes wrote:
> On Wed, May 09, 2007 at 12:46:52PM +0100, Dave Page wrote:
>>> Unfortunately I do not have access to a Vista system I could use to test
>>> and track this one down.
>> I'm happy to run any tests you like.
>
> Dave, could you please apply this small patch to pgtypeslib/datetime.c.
> I still have no clue where the error code is comming from and I'm trying
> to narrow it down a bit.

Hi Michael,

The results are attached. Please let me know if I can do anything more.

Regards, Dave
[NO_PID]: ECPGdebug: set to 1
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ECPGconnect: opening database regress1 on <DEFAULT> port <DEFAULT>
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ECPGexecute line 29: QUERY: create  table date_test ( d date    , ts timestamp    )     on connection
regress1
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ECPGexecute line 29 Ok: CREATE TABLE
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ECPGexecute line 30: QUERY: set datestyle to iso on connection regress1
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ECPGexecute line 30 Ok: SET
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ECPGexecute line 35: QUERY: insert into date_test ( d  , ts  ) values (  date '1966-01-17' ,  timestamp
'2000-07-1217:34:29' )  on connection regress1 
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ECPGexecute line 35 Ok: INSERT 0 1
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ECPGexecute line 37: QUERY: select  *  from date_test where d =  date '1966-01-17'   on connection regress1
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ECPGexecute line 37: Correctly got 1 tuples with 2 fields
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ECPGget_data line 37: RESULT: 1966-01-17 offset: -1 array: Yes
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ECPGget_data line 37: RESULT: 1966-01-17 errno 22
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: raising sqlcode -209 in line 37, 'SQL error #-209 in line 37.'.
[NO_PID]: sqlca: code: -209, state: 42804
sql error SQL error #-209 in line 37.
[NO_PID]: ECPGtrans line 350 action = rollback connection = regress1
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_finish: Connection regress1 closed.
[NO_PID]: sqlca: code: 0, state: 00000
1: errno = 0
2: errno = 22
3: errno = 22
4: errno = 22
1: errno = 0
2: errno = 22
3: errno = 22
4: errno = 22
Date: 1966-01-17
timestamp: 2000-07-12 17:34:29
interval: @ 13556 days 12 hours 34 mins 14 secs
m: 4, d: 19, y: 1998
date seems to get encoded to julian -622
m: 4, d: 19, y: 1998
date_day of 2003-12-04 17:34:29 is 4
Above date in format "(ddd), mmm. dd, yyyy, repeat: (ddd), mmm. dd, yyyy. end" is "(Thu), Dec. 04, 2003, repeat: (Thu),
Dec.04, 2003. end" 
date_defmt_asc1: 1995-12-25
date_defmt_asc2: 0095-12-25
date_defmt_asc3: 0095-12-25
date_defmt_asc4: 1995-12-25
date_defmt_asc5: 1995-12-25
date_defmt_asc6: 1995-12-25
date_defmt_asc7: 1995-12-25
date_defmt_asc8: 1995-12-25
date_defmt_asc9: 1995-12-25
date_defmt_asc10: 1995-12-25
date_defmt_asc12: 0095-12-25
timestamp_to_asc1: 1996-02-29 00:00:00
timestamp_to_asc2: 1994-02-11 03:10:35
timestamp_to_asc3: 2000-01-01 00:00:00
timestamp_fmt_asc: 0: abc-00:00:00-def-01/01/00-ghi%
timestamp_defmt_asc(This is a 4/12/80 3-39l12test, This is a %m/%d/%y %H-%Ml%Stest) = 1980-04-12 03:39:12, error: 0
timestamp_defmt_asc(Tue Jul 22 17:28:44 +0200 2003, %a %b %d %H:%M:%S %z %Y) = 2003-07-22 15:28:44, error: 0
timestamp_defmt_asc(Tue Feb 29 17:28:44 +0200 2000, %a %b %d %H:%M:%S %z %Y) = 2000-02-29 15:28:44, error: 0
timestamp_defmt_asc(Tue Feb 29 17:28:44 +0200 1900, %a %b %d %H:%M:%S %z %Y) = 1900-02-28 15:28:44, error (should be
error!):1 
timestamp_defmt_asc(Tue Feb 29 17:28:44 +0200 1996, %a %b %d %H:%M:%S %z %Y) = 1996-02-29 15:28:44, error: 0
timestamp_defmt_asc(      Jul 31 17:28:44 +0200 1996, %b %d %H:%M:%S %z %Y) = 1996-07-31 15:28:44, error: 0
timestamp_defmt_asc(      Jul 32 17:28:44 +0200 1996, %b %d %H:%M:%S %z %Y) = 1996-07-31 15:28:44, error (should be
error!):1 
timestamp_defmt_asc(Tue Feb 29 17:28:44 +0200 1997, %a %b %d %H:%M:%S %z %Y) = 1997-02-28 15:28:44, error (should be
error!):1 
timestamp_defmt_asc(Tue Jul 22 17:28:44 +0200 2003, %) = 1997-02-28 15:28:44, error (should be error!): 1
timestamp_defmt_asc(Tue Jul 22 17:28:44 +0200 2003, a %) = 1997-02-28 15:28:44, error (should be error!): 1
timestamp_defmt_asc(    Jul, 22 17_28 `44 +0200  2003  , %b, %d %H_%M`%S %z %Y) = 2003-07-22 15:28:44, error: 0
timestamp_defmt_asc(Tue Jul %22 17:28:44 CEST 2003, %a %b %%%d %H:%M:%S %Z %Y) = 2003-07-22 15:28:44, error: 0
timestamp_defmt_asc(Tue Jul %22 17:28:44 CEST 2003, %a %b %%%d %H:%M:%S %Z %Y) = 2003-07-22 15:28:44, error: 0
timestamp_defmt_asc(abc
   19 October %22 17:28:44 CEST 2003, abc%n %C %B %%%d %H:%M:%S %Z %Y) = 2003-10-22 15:28:44, error: 0
timestamp_defmt_asc(abc
   18 October %34 17:28:44 CEST 80, abc%n %C %B %%%d %H:%M:%S %Z %y) = 1880-10-31 15:28:44, error (should be error!): 1
timestamp_defmt_asc(abc
   18 October %34 17:28:44 CEST 80, ) = 1880-10-31 15:28:44, error (should be error!): 1
timestamp_defmt_asc(1980-04-12 3:49:44      , NULL) = 1980-04-12 03:49:44, error: 0
timestamp_defmt_asc(July 14, 1988. Time: 9:15am, %B %d, %Y. Time: %I:%M%p) = 1988-07-14 09:15:00, error: 0
timestamp_defmt_asc(September 6 at 01:30 pm in the year 1983, %B %d at %I:%M %p in the year %Y) = 1983-09-06 13:30:00,
error:0 
timestamp_defmt_asc(  1976, July 14. Time: 9:15am, %Y,   %B %d. Time: %I:%M %p) = 1976-07-14 09:15:00, error: 0
timestamp_defmt_asc(  1976, July 14. Time: 9:15 am, %Y,   %B %d. Time: %I:%M%p) = 1976-07-14 09:15:00, error: 0
timestamp_defmt_asc(  1976, P.M. July 14. Time: 9:15, %Y, %P  %B %d. Time: %I:%M) = 1976-07-14 21:15:00, error: 0
*** expected/pgtypeslib-dt_test.stderr    Sat Mar 17 19:25:23 2007
--- results/pgtypeslib-dt_test.stderr    Wed May 16 09:14:04 2007
***************
*** 20,27 ****
  [NO_PID]: sqlca: code: 0, state: 00000
  [NO_PID]: ECPGget_data line 37: RESULT: 1966-01-17 offset: -1 array: Yes
  [NO_PID]: sqlca: code: 0, state: 00000
! [NO_PID]: ECPGget_data line 37: RESULT: 2000-07-12 17:34:29 offset: -1 array: Yes
  [NO_PID]: sqlca: code: 0, state: 00000
  [NO_PID]: ECPGtrans line 350 action = rollback connection = regress1
  [NO_PID]: sqlca: code: 0, state: 00000
  [NO_PID]: ecpg_finish: Connection regress1 closed.
--- 20,30 ----
  [NO_PID]: sqlca: code: 0, state: 00000
  [NO_PID]: ECPGget_data line 37: RESULT: 1966-01-17 offset: -1 array: Yes
  [NO_PID]: sqlca: code: 0, state: 00000
! [NO_PID]: ECPGget_data line 37: RESULT: 1966-01-17 errno 22
  [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: raising sqlcode -209 in line 37, 'SQL error #-209 in line 37.'.
+ [NO_PID]: sqlca: code: -209, state: 42804
+ sql error SQL error #-209 in line 37.
  [NO_PID]: ECPGtrans line 350 action = rollback connection = regress1
  [NO_PID]: sqlca: code: 0, state: 00000
  [NO_PID]: ecpg_finish: Connection regress1 closed.
*** expected/pgtypeslib-dt_test.stdout    Mon Aug  7 14:17:02 2006
--- results/pgtypeslib-dt_test.stdout    Wed May 16 09:14:04 2007
***************
*** 1,3 ****
--- 1,11 ----
+ 1: errno = 0
+ 2: errno = 22
+ 3: errno = 22
+ 4: errno = 22
+ 1: errno = 0
+ 2: errno = 22
+ 3: errno = 22
+ 4: errno = 22
  Date: 1966-01-17
  timestamp: 2000-07-12 17:34:29
  interval: @ 13556 days 12 hours 34 mins 14 secs
*** expected/pgtypeslib-dt_test2.stdout    Thu Sep 14 09:02:38 2006
--- results/pgtypeslib-dt_test2.stdout    Wed May 16 09:14:06 2007
***************
*** 1,88 ****
--- 1,159 ----
  timestamp: 2003-12-04 17:34:29
  Date of timestamp: 2003-12-04
+ 1: errno = 0
  Date[0]: - (N - T)
+ 1: errno = 0
  Date[1]: - (N - T)
+ 1: errno = 0
  Date[2]: - (N - T)
+ 1: errno = 0
+ 2: errno = 0
+ 3: errno = 0
+ 4: errno = 0
  Date[3]: 1999-01-08 (N - F)
  TS[3,0]: 1999-01-08 00:04:00
  TS[3,1]: 1999-01-08 01:59:00
  TS[3,2]: 1999-01-08 13:24:40
  TS[3,3]: 1999-01-08 13:24:40.495
+ 1: errno = 0
+ 2: errno = 0
+ 3: errno = 0
+ 4: errno = 0
  Date[4]: 1999-01-08 (N - F)
  TS[4,0]: 1999-01-08 00:04:00
  TS[4,1]: 1999-01-08 01:59:00
  TS[4,2]: 1999-01-08 13:24:40
  TS[4,3]: 1999-01-08 13:24:40.495
+ 1: errno = 0
+ 2: errno = 0
+ 3: errno = 0
+ 4: errno = 0
  Date[5]: 1999-01-08 (N - F)
  TS[5,0]: 1999-01-08 00:04:00
  TS[5,1]: 1999-01-08 01:59:00
  TS[5,2]: 1999-01-08 13:24:40
  TS[5,3]: 1999-01-08 13:24:40.495
+ 1: errno = 0
+ 2: errno = 0
+ 3: errno = 0
+ 4: errno = 0
  Date[6]: 1999-01-18 (N - F)
  TS[6,0]: 1999-01-18 00:04:00
  TS[6,1]: 1999-01-18 01:59:00
  TS[6,2]: 1999-01-18 13:24:40
  TS[6,3]: 1999-01-18 13:24:40.495
+ 1: errno = 0
+ 2: errno = 0
+ 3: errno = 0
+ 4: errno = 0
  Date[7]: 2003-01-02 (N - F)
  TS[7,0]: 2003-01-02 00:04:00
  TS[7,1]: 2003-01-02 01:59:00
  TS[7,2]: 2003-01-02 13:24:40
  TS[7,3]: 2003-01-02 13:24:40.495
+ 1: errno = 0
+ 2: errno = 0
+ 3: errno = 0
+ 4: errno = 0
  Date[8]: 1999-01-08 (N - F)
  TS[8,0]: 1999-01-08 00:04:00
  TS[8,1]: 1999-01-08 01:59:00
  TS[8,2]: 1999-01-08 13:24:40
  TS[8,3]: 1999-01-08 13:24:40.495
+ 1: errno = 0
+ 2: errno = 0
+ 3: errno = 0
+ 4: errno = 0
  Date[9]: 1999-01-08 (N - F)
  TS[9,0]: 1999-01-08 00:04:00
  TS[9,1]: 1999-01-08 01:59:00
  TS[9,2]: 1999-01-08 13:24:40
  TS[9,3]: 1999-01-08 13:24:40.495
+ 1: errno = 0
+ 2: errno = 0
+ 3: errno = 0
+ 4: errno = 0
  Date[10]: 1999-01-08 (N - F)
  TS[10,0]: 1999-01-08 00:04:00
  TS[10,1]: 1999-01-08 01:59:00
  TS[10,2]: 1999-01-08 13:24:40
  TS[10,3]: 1999-01-08 13:24:40.495
+ 1: errno = 0
+ 2: errno = 0
+ 3: errno = 0
+ 4: errno = 0
  Date[11]: 1999-01-08 (N - F)
  TS[11,0]: 1999-01-08 00:04:00
  TS[11,1]: 1999-01-08 01:59:00
  TS[11,2]: 1999-01-08 13:24:40
  TS[11,3]: 1999-01-08 13:24:40.495
+ 1: errno = 0
+ 2: errno = 0
+ 3: errno = 0
+ 4: errno = 0
  Date[12]: 1999-01-08 (N - F)
  TS[12,0]: 1999-01-08 00:04:00
  TS[12,1]: 1999-01-08 01:59:00
  TS[12,2]: 1999-01-08 13:24:40
  TS[12,3]: 1999-01-08 13:24:40.495
+ 1: errno = 0
+ 2: errno = 0
+ 3: errno = 0
+ 4: errno = 0
  Date[13]: 2006-01-08 (N - F)
  TS[13,0]: 2006-01-08 00:04:00
  TS[13,1]: 2006-01-08 01:59:00
  TS[13,2]: 2006-01-08 13:24:40
  TS[13,3]: 2006-01-08 13:24:40.495
+ 1: errno = 0
+ 2: errno = 0
+ 3: errno = 0
+ 4: errno = 0
  Date[14]: 1999-01-08 (N - F)
  TS[14,0]: 1999-01-08 00:04:00
  TS[14,1]: 1999-01-08 01:59:00
  TS[14,2]: 1999-01-08 13:24:40
  TS[14,3]: 1999-01-08 13:24:40.495
+ 1: errno = 0
+ 2: errno = 0
+ 3: errno = 0
+ 4: errno = 0
  Date[15]: 1999-01-08 (N - F)
  TS[15,0]: 1999-01-08 00:04:00
  TS[15,1]: 1999-01-08 01:59:00
  TS[15,2]: 1999-01-08 13:24:40
  TS[15,3]: 1999-01-08 13:24:40.495
+ 1: errno = 0
+ 2: errno = 0
+ 3: errno = 0
+ 4: errno = 0
  Date[16]: 1999-01-08 (N - F)
  TS[16,0]: 1999-01-08 00:04:00
  TS[16,1]: 1999-01-08 01:59:00
  TS[16,2]: 1999-01-08 13:24:40
  TS[16,3]: 1999-01-08 13:24:40.495
+ 1: errno = 0
+ 2: errno = 0
+ 3: errno = 0
+ 4: errno = 0
  Date[17]: 1999-01-08 (N - F)
  TS[17,0]: 1999-01-08 00:04:00
  TS[17,1]: 1999-01-08 01:59:00
  TS[17,2]: 1999-01-08 13:24:40
  TS[17,3]: 1999-01-08 13:24:40.495
+ 1: errno = 0
+ 2: errno = 0
+ 3: errno = 0
+ 4: errno = 0
  Date[18]: 1999-01-08 (N - F)
  TS[18,0]: 1999-01-08 00:04:00
  TS[18,1]: 1999-01-08 01:59:00
  TS[18,2]: 1999-01-08 13:24:40
  TS[18,3]: 1999-01-08 13:24:40.495
+ 1: errno = 0
+ 2: errno = 0
+ 3: errno = 0
+ 4: errno = 0
  Date[19]: 0099-01-08 BC (N - F)
  TS[19,0]: 0099-01-08 00:04:00 BC
  TS[19,1]: 0099-01-08 01:59:00 BC