Perl is v5.8.3 built for PA RISC 1.1.
Machine is HP superdome with at least 15 processors assigned and min 10Gb of memory.
Time::Local version is 1.07
Time::Local returns invalid results for Sept. 2004. All of the bad returns have a $pmon value of 8 and $pyear value of 104. Only the first call using a date in September 2004 is returned correctly. All other bad returns are for different dates within the same year and month. Incorrect values are consistant as far as I can tell. This bug appeared after a system & perl version upgrade. Code worked for years without error on older version of Perl & HP/UX. We are currently running the latest version of PERL suppored by HP.
Here is the code as running:
#get seconds for login time supplied
print "values sent to time local 1:1:1:$pday:$pmon:$pyear";
use Time::Local;
$pepoch=timelocal(1,1,1,$pday,$pmon,$pyear);
print " return value is $pepoch\n";
Here is an example of the results...
First the good call for Sept with 2 surrounding data lines:
values sent to time local 1:1:1:01:0:100 return value is 946706461
values sent to time local 1:1:1:30:8:104 return value is 1096520461
values sent to time local 1:1:1:05:4:105 return value is 1115269261
Next the first bad call with surrounding data:
values sent to time local 1:1:1:05:6:101 return value is 994309261
values sent to time local 1:1:1:02:8:104 return value is 194461
values sent to time local 1:1:1:14:2:102 return value is 1016085661
Lastly, here is a section of bad dates that fall next to each other:
values sent to time local 1:1:1:07:3:105 return value is 1112850061
values sent to time local 1:1:1:26:7:104 return value is 1093496461
values sent to time local 1:1:1:02:8:104 return value is 194461
values sent to time local 1:1:1:16:8:104 return value is 1404061
values sent to time local 1:1:1:16:8:104 return value is 1404061
values sent to time local 1:1:1:16:8:104 return value is 1404061
values sent to time local 1:1:1:16:8:104 return value is 1404061
values sent to time local 1:1:1:05:4:105 return value is 1115269261
values sent to time local 1:1:1:23:8:104 return value is 2008861
values sent to time local 1:1:1:05:4:105 return value is 1115269261
values sent to time local 1:1:1:09:11:104 return value is 1102572061
Someone mentioned a caching issue sounds which sounds like a possibility. I think in some earlier testing that I was able to remove all errors by moving the data lines that returned bad values to earlier locations in the data file. The the question becomes how would I track what is causing the cache error. I think the Time::Local version I have is the most current supported one for HP/UX. The other issue is that the over 1000 other calls come back correct.
One of the replies suggested I not use 1,1,1 due to DST. I am using 1,1,1 only because I require age in number of days. This still could be a possibility, but the error is for the month of September and the DST change takes place in October.
Thanks for amy help.
mike<r>