bug-coreutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Follow Up: Re: date broken in coreutils-6.7 and new glibc-2.7


From: Clemens Koller
Subject: Follow Up: Re: date broken in coreutils-6.7 and new glibc-2.7
Date: Mon, 12 Nov 2007 16:35:49 +0100
User-agent: Thunderbird 2.0.0.6 (Windows/20070728)

Hello, Phil!

(Sorry, I've lost the original thread, need to start a new one.)

As already mentioned, my problem is that I cannot set the date reliably,
working on glibc-2.7 and coreutils-6.9 (including the futimens patch).
I did some more tests (the commands have been entered one by one... only some
second(s) in between):

Right after power-up, login:
address@hidden:~$ date
Thu Jan  1 01:00:00 CET 1970
address@hidden:~$ date -u 111214492007.00
Mon Nov 12 14:49:00 UTC 2007
address@hidden:~$ date
Thu Jan  1 01:00:00 CET 1970
address@hidden:~$ date
Thu Jan  1 01:00:00 CET 1970
address@hidden:~$ date
Thu Jan  1 01:00:00 CET 1970
address@hidden:~$ date -u 111214492007.00
Mon Nov 12 14:49:00 UTC 2007
address@hidden:~$ date
Thu Jan  1 01:00:00 CET 1970
address@hidden:~$ date
Thu Jan  1 01:00:00 CET 1970
address@hidden:~$ date
Thu Jan  1 01:00:00 CET 1970
address@hidden:~$ date -u 111214492007.00
Mon Nov 12 14:49:00 UTC 2007
address@hidden:~$ date
Thu Jan  1 01:00:00 CET 1970
address@hidden:~$ date
Mon Nov 12 15:49:03 CET 2007        <<< working from here!!
address@hidden:~$ date
Mon Nov 12 15:49:04 CET 2007
address@hidden:~$ date
Mon Nov 12 15:49:06 CET 2007
address@hidden:~$ date
Mon Nov 12 15:49:07 CET 2007
address@hidden:~$

An then another test-run after some minutes uptime, everything is fine:
address@hidden:~$ date
Mon Nov 12 16:04:11 CET 2007
address@hidden:~$ date -s 16:06
Mon Nov 12 16:06:00 CET 2007
address@hidden:~$ date
Mon Nov 12 16:06:02 CET 2007
address@hidden:~$ date
Mon Nov 12 16:06:04 CET 2007
address@hidden:~$ date
Mon Nov 12 16:06:06 CET 2007
address@hidden:~$ date -s 16:05
Mon Nov 12 16:05:00 CET 2007
address@hidden:~$ date
Mon Nov 12 16:05:01 CET 2007
address@hidden:~$ date
Mon Nov 12 16:05:03 CET 2007
address@hidden:~$

I think I forgot to mention that the problem seems to appear
only right after powerup of the embedded device (it has a
RTC on it's I2C bus (DS1337U chip) but that's not used here or
broken).

The interesting part of it is, that the date can indeed be set
with -u (and with -s), but the actual update seems to
be delayed by about one minute after a reboot.
Once the system is up and the date has been set once,
it can be set properly without any delay or problem.

It seems more kernel / glibc related to me, now.
And I will have to first understand the expected behaviour
of the kernel. (But note: the kernel didn't change in between
my toolchain upgrade, so it was working before with the old
glibc-2.3.5, same coreutils... ????)


Below are some strace outputs... in case of interest.
-------------------------8<---------------------------

WORKING PROPERLY (I want to set it back 2 minutes):
$ date -s 16:12;date;strace date -s 16:10;date
Mon Nov 12 16:12:00 CET 2007
Mon Nov 12 16:12:00 CET 2007
execve("/bin/date", ["date", "-s", "16:10"], [/* 19 vars */]) = 0
brk(0)                                  = 0x1001c000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 
0x3001e000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY)      = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=19812, ...}) = 0
mmap(NULL, 19812, PROT_READ, MAP_PRIVATE, 3, 0) = 0x3001f000
close(3)                                = 0
open("/lib/librt.so.1", O_RDONLY)       = 3
read(3, 
"\177ELF\1\2\1\0\0\0\0\0\0\0\0\0\0\3\0\24\0\0\0\1\0\0\31\310\0\0\0004"..., 512) 
= 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=31860, ...}) = 0
mmap(0xffd8000, 95540, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 
0xffd8000
mprotect(0xffdf000, 61440, PROT_NONE)   = 0
mmap(0xffee000, 8192, PROT_READ|PROT_WRITE|PROT_EXEC, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x6000) = 0xffee000
close(3)                                = 0
open("/lib/libc.so.6", O_RDONLY)        = 3
read(3, 
"\177ELF\1\2\1\0\0\0\0\0\0\0\0\0\0\3\0\24\0\0\0\1\0\1\361\270\0\0\0004"..., 
512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=1492828, ...}) = 0
mmap(0xfe52000, 1528736, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) 
= 0xfe52000
mprotect(0xffb0000, 65536, PROT_NONE)   = 0
mmap(0xffc0000, 20480, PROT_READ|PROT_WRITE|PROT_EXEC, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x15e000) = 0xffc0000
mmap(0xffc5000, 9120, PROT_READ|PROT_WRITE|PROT_EXEC, 
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xffc5000
close(3)                                = 0
open("/lib/libpthread.so.0", O_RDONLY)  = 3
read(3, "\177ELF\1\2\1\0\0\0\0\0\0\0\0\0\0\3\0\24\0\0\0\1\0\0M8\0\0\0004"..., 
512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=97500, ...}) = 0
mmap(0xfe19000, 165436, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 
0xfe19000
mprotect(0xfe2f000, 61440, PROT_NONE)   = 0
mmap(0xfe3e000, 8192, PROT_READ|PROT_WRITE|PROT_EXEC, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x15000) = 0xfe3e000
mmap(0xfe40000, 5692, PROT_READ|PROT_WRITE|PROT_EXEC, 
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xfe40000
close(3)                                = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 
0x30024000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 
0x30025000
mprotect(0xfe3e000, 4096, PROT_READ)    = 0
mprotect(0xffc0000, 8192, PROT_READ)    = 0
mprotect(0xffee000, 4096, PROT_READ)    = 0
mprotect(0x3002d000, 4096, PROT_READ)   = 0
munmap(0x3001f000, 19812)               = 0
set_tid_address(0x30024838)             = 788
get_robust_list(0x30024840, 0xc, 0x7fff3d34) = 0
futex(0x7fff3be8, FUTEX_WAKE_PRIVATE, 1) = -1 ENOSYS (Function not implemented)
rt_sigaction(SIGRTMIN, {0xfe1d92c, [], SA_SIGINFO}, NULL, 8) = 0
rt_sigaction(SIGRT_1, {0xfe1d818, [], SA_RESTART|SA_SIGINFO}, NULL, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0
getrlimit(RLIMIT_STACK, {rlim_cur=8192*1024, rlim_max=RLIM_INFINITY}) = 0
clock_gettime(CLOCK_REALTIME, {1194880320, 18361000}) = 0
brk(0)                                  = 0x1001c000
brk(0x1003d000)                         = 0x1003d000
open("/etc/localtime", O_RDONLY)        = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=2295, ...}) = 0
fstat64(3, {st_mode=S_IFREG|0644, st_size=2295, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 
0x3001f000
read(3, "TZif2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\10\0\0\0\10\0\0\0\0"..., 
4096) = 2295
_llseek(3, -28, [2267], SEEK_CUR)       = 0
read(3, "\nCET-1CEST,M3.5.0,M10.5.0/3\n", 4096) = 28
close(3)                                = 0
munmap(0x3001f000, 4096)                = 0
stat64("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2295, ...}) = 0
stat64("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2295, ...}) = 0
stat64("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2295, ...}) = 0
clock_settime(CLOCK_REALTIME, {1194880200, 0}) = 0
stat64("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2295, ...}) = 0
stat64("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2295, ...}) = 0
fstat64(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 0), ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 
0x3001f000
stat64("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2295, ...}) = 0
write(1, "Mon Nov 12 16:10:00 CET 2007\n", 29Mon Nov 12 16:10:00 CET 2007
) = 29
close(1)                                = 0
munmap(0x3001f000, 4096)                = 0
close(2)                                = 0
exit_group(0)                           = ?
Mon Nov 12 16:10:00 CET 2007


Just after a reboot - NOT WORKING:
(because I want to set it to 15:10 CET and not to 15:12 UTC)

address@hidden:~$ date -u 111215122007.00;date;strace date -s 
111215102007.00;date
Mon Nov 12 15:12:00 UTC 2007
Mon Nov 12 16:12:00 CET 2007
execve("/bin/date", ["date", "-s", "111215102007.00"], [/* 19 vars */]) = 0
brk(0)                                  = 0x1001c000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 
0x3001e000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY)      = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=19812, ...}) = 0
mmap(NULL, 19812, PROT_READ, MAP_PRIVATE, 3, 0) = 0x3001f000
close(3)                                = 0
open("/lib/librt.so.1", O_RDONLY)       = 3
read(3, 
"\177ELF\1\2\1\0\0\0\0\0\0\0\0\0\0\3\0\24\0\0\0\1\0\0\31\310\0\0\0004"..., 512) 
= 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=31860, ...}) = 0
mmap(0xffd8000, 95540, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 
0xffd8000
mprotect(0xffdf000, 61440, PROT_NONE)   = 0
mmap(0xffee000, 8192, PROT_READ|PROT_WRITE|PROT_EXEC, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x6000) = 0xffee000
close(3)                                = 0
open("/lib/libc.so.6", O_RDONLY)        = 3
read(3, 
"\177ELF\1\2\1\0\0\0\0\0\0\0\0\0\0\3\0\24\0\0\0\1\0\1\361\270\0\0\0004"..., 
512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=1492828, ...}) = 0
mmap(0xfe52000, 1528736, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) 
= 0xfe52000
mprotect(0xffb0000, 65536, PROT_NONE)   = 0
mmap(0xffc0000, 20480, PROT_READ|PROT_WRITE|PROT_EXEC, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x15e000) = 0xffc0000
mmap(0xffc5000, 9120, PROT_READ|PROT_WRITE|PROT_EXEC, 
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xffc5000
close(3)                                = 0
open("/lib/libpthread.so.0", O_RDONLY)  = 3
read(3, "\177ELF\1\2\1\0\0\0\0\0\0\0\0\0\0\3\0\24\0\0\0\1\0\0M8\0\0\0004"..., 
512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=97500, ...}) = 0
mmap(0xfe19000, 165436, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 
0xfe19000
mprotect(0xfe2f000, 61440, PROT_NONE)   = 0
mmap(0xfe3e000, 8192, PROT_READ|PROT_WRITE|PROT_EXEC, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x15000) = 0xfe3e000
mmap(0xfe40000, 5692, PROT_READ|PROT_WRITE|PROT_EXEC, 
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xfe40000
close(3)                                = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 
0x30024000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 
0x30025000
mprotect(0xfe3e000, 4096, PROT_READ)    = 0
mprotect(0xffc0000, 8192, PROT_READ)    = 0
mprotect(0xffee000, 4096, PROT_READ)    = 0
mprotect(0x3002d000, 4096, PROT_READ)   = 0
munmap(0x3001f000, 19812)               = 0
set_tid_address(0x30024838)             = 682
get_robust_list(0x30024840, 0xc, 0x7fd2bd34) = 0
futex(0x7fd2bbe8, FUTEX_WAKE_PRIVATE, 1) = -1 ENOSYS (Function not implemented)
rt_sigaction(SIGRTMIN, {0xfe1d92c, [], SA_SIGINFO}, NULL, 8) = 0
rt_sigaction(SIGRT_1, {0xfe1d818, [], SA_RESTART|SA_SIGINFO}, NULL, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0
getrlimit(RLIMIT_STACK, {rlim_cur=8192*1024, rlim_max=RLIM_INFINITY}) = 0
clock_gettime(CLOCK_REALTIME, {1194880320, 18851000}) = 0
brk(0)                                  = 0x1001c000
brk(0x1003d000)                         = 0x1003d000
open("/etc/localtime", O_RDONLY)        = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=2295, ...}) = 0
fstat64(3, {st_mode=S_IFREG|0644, st_size=2295, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 
0x3001f000
read(3, "TZif2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\10\0\0\0\10\0\0\0\0"..., 
4096) = 2295
_llseek(3, -28, [2267], SEEK_CUR)       = 0
read(3, "\nCET-1CEST,M3.5.0,M10.5.0/3\n", 4096) = 28
close(3)                                = 0
munmap(0x3001f000, 4096)                = 0
stat64("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2295, ...}) = 0
stat64("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2295, ...}) = 0
write(2, "date: ", 6date: )                   = 6
write(2, "invalid date `111215102007.00\'", 30invalid date `111215102007.00') = 
30
write(2, "\n", 1
)                       = 1
close(1)                                = 0
close(2)                                = 0
exit_group(1)                           = ?
Mon Nov 12 16:12:00 CET 2007
address@hidden:~$ date
Mon Nov 12 16:12:02 CET 2007

-------------------------8<---------------------------

Thank you anyway...
Regards,

--
Clemens Koller
__________________________________
R&D Imaging Devices
Anagramm GmbH
Rupert-Mayer-Straße 45/1
Linhof Werksgelände
D-81379 München
Tel.089-741518-50
Fax 089-741518-19
http://www.anagramm-technology.com




reply via email to

[Prev in Thread] Current Thread [Next in Thread]