Wind River Support Network

HomeDefectsLIN9-10372
Fixed

LIN9-10372 : clock_gettime return fault time after setting the system as 2040 using date command, but SYS_clock_gettime is ok

Created: Sep 18, 2020    Updated: Nov 30, 2020
Resolved Date: Oct 26, 2020
Found In Version: unknown
Fix Version: 9.0.0.26
Severity: Standard
Applicable for: Wind River Linux 9
Component/s: System Usecases

Description

Refer to Steps to reproduce 

 

Steps to Reproduce

1.Project configuration

/opt/WRLX8/wrlinux-8/wrlinux/configure --enable-bootimage=cpio.gz.u-boot --enable-board=fsl_t1xxx --enable-rootfs=glibc_core --enable-parallel-pkgbuilds=12 --enable-jobs=12 --enable-build=production --enable-doc-pages=yes --enable-ldconfig=yes --enable-sdkmachine=x86_64 --enable-sdkimage-staticlibs=yes --enable-internet-download=no --enable-checkout-all-layers=yes --with-init=sysvinit --enable-rm-work=no --with-template=feature/ntp428p13 --enable-kernel=preempt-rt --enable-reconfig

2.Replace layers/local/recipes-sample/hello/hello/hello.c to the test code.

3.Add package hello and strace.

make hello.addpkg

make strace.addpkg

4.build the system

make

5.Deploy to target.

Boot the kernel and ramfs wrlinux-image-glibc-core-fsl-t1xxx.cpio.gz.u-boot

6.change the system time

date 080413222040

7.execute test code

strace hello 1

root@localhost:~# strace hello 1
execve("/usr/bin/hello", ["hello", "1"], [/* 14 vars */]) = 0
brk(0) = 0x10011000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x3fffad7c8000
access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
fstat(3, \{st_mode=S_IFREG|0644, st_size=3415, ...}) = 0
mmap(NULL, 3415, PROT_READ, MAP_PRIVATE, 3, 0) = 0x3fffad7c7000
close(3) = 0
open("/lib64/tls/ppce5500/libc.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/lib64/tls/ppce5500", 0x3fffd71bfe50) = -1 ENOENT (No such file or directory)
open("/lib64/tls/libc.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/lib64/tls", 0x3fffd71bfe50) = -1 ENOENT (No such file or directory)
open("/lib64/ppce5500/libc.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/lib64/ppce5500", 0x3fffd71bfe50) = -1 ENOENT (No such file or directory)
open("/lib64/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\2\1\3\0\0\0\0\0\0\0\0\0\3\0\25\0\0\0\1\0\0\0\0\0\34\31`"..., 832) = 832
fstat(3, \{st_mode=S_IFREG|0755, st_size=1855912, ...}) = 0
mmap(NULL, 1930312, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3fffad5b2000
mprotect(0x3fffad75b000, 77824, PROT_NONE) = 0
mmap(0x3fffad76e000, 98304, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1ac000) = 0x3fffad76e000
mmap(0x3fffad786000, 13384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x3fffad786000
close(3) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x3fffad7c6000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x3fffad7c5000
mprotect(0x3fffad76e000, 16384, PROT_READ) = 0
mprotect(0x3fffad7c9000, 4096, PROT_READ) = 0
munmap(0x3fffad7c7000, 3415) = 0
clock_gettime(CLOCK_MONOTONIC, \{6698, 713010219}) = 0
fstat(1, \{st_mode=S_IFCHR|0600, st_rdev=makedev(5, 1), ...}) = 0
ioctl(1, _IOC(_IOC_READ, 0x74, 0x13, 0x2c), \{B115200 opost isig icanon echo ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x3fffad7c7000
write(1, "[SYS]clockid: 1, sec: 6698, nsec"..., 45[SYS]clockid: 1, sec: 6698, nsec: 713010219n
) = 45
write(1, "[GLIBC]clockid: 1, sec: 42949739"..., 53[GLIBC]clockid: 1, sec: 4294973994, nsec: 749877988n
) = 53
exit_group(0) = ?
+++ exited with 0 +++

 

We got different result from glibc and system call.
Live chat
Online