32-bit time in <utmp.h> (Re: cvs commit: ports/net/pppd23...)
Garance A Drosihn
drosih at rpi.edu
Thu May 20 13:43:17 PDT 2004
At 10:48 PM +0200 4/28/04, Marius Strobl wrote:
>On Wed, Apr 28, 2004 at 01:22:37PM -0700, Kris Kennaway wrote:
>>
> > I wonder if this 32-bitness is related to the accounting
> > problems noticed on sparc64 since the 64-bit time_t
> > changeover:
> >
>> struct lastlog {
>> int32_t ll_time;
>> char ll_line[UT_LINESIZE];
>> char ll_host[UT_HOSTSIZE];
>> };
>>
>> struct utmp {
>> char ut_line[UT_LINESIZE];
>> char ut_name[UT_NAMESIZE];
>> char ut_host[UT_HOSTSIZE];
>> int32_t ut_time;
>> };
>>
>
>Like I said before, this isn't a sparc64 specific problem, I also
>see it on my -current i386 boxes:
>
>tristan# uname -a
>FreeBSD tristan.franken.de 5.2-CURRENT FreeBSD 5.2-CURRENT #0: Wed
>Apr 28 22:11:03 CEST 2004
>root at tristan.franken.de:/usr/src/sys/i386/compile/tristan i386
>tristan# /etc/periodic/monthly/200.accounting
>
>Doing login accounting:
>(Skipped 709 of 739 records due to invalid time values)
>(Changed 3 of 739 records to have a more likely time value)
> root -65080.69
> marius -136664.62
> total -201745.32
>
>I think it's connected to SCHED_ULE, but haven't checked that
>closely, yet.
It isn't documented in the man page, but you could compile
/usr/src/usr.sbin/ac with CFLAGS+=-DDEBUG
and then run: ac -D -p -w /var/log/wtmp
to see a lot more detail about each run. I have the makefile
compile `ac' with DEBUG for sparc64. I did not do that for the
other architectures because I thought this problem was specific to
64-bit time_t. (in fact, I'm pretty sure that no one complained
about this problem on sparc64 until we went to 64-bTT).
I still haven't seen this error on my own systems. I'm surprised
that you see such a high percentage of suspect records. I'm also
surprised that you still ended up with such bogus results even
after `ac' has skipped over all the suspect records!
--
Garance Alistair Drosehn = gad at gilead.netel.rpi.edu
Senior Systems Programmer or gad at freebsd.org
Rensselaer Polytechnic Institute or drosih at rpi.edu
More information about the freebsd-sparc64
mailing list