Source: faketime
Version: 0.9.10-1
Severity: serious
User: debian...@lists.debian.org
Usertags: regression

Dear maintainer(s),

With a recent upload of faketime the autopkgtest of faketime fails in testing when that autopkgtest is run with the binary packages of faketime from unstable. It passes when run with only packages from testing. In tabular form:

                       pass            fail
faketime               from testing    0.9.10-1
all others             from testing    from testing

I copied some of the output at the bottom of this report.

Currently this regression is blocking the migration to testing [1]. Can you please investigate the situation and fix it?

More information about this bug and the reason for filing it can be found on
https://wiki.debian.org/ContinuousIntegration/RegressionEmailInformation

Paul

[1] https://qa.debian.org/excuses.php?package=faketime

https://ci.debian.net/data/autopkgtest/testing/amd64/f/faketime/20035213/log.gz

Running the test program with no faked time specified
$ LD_PRELOAD=/usr/lib/x86_64-linux-gnu/faketime/libfaketime.so.1 ./timetest
pthread_cond_timedwait: CLOCK_REALTIME test
(Intentionally sleeping 1 second...)
pthread_cond_timedwait: CLOCK_MONOTONIC test
(Intentionally sleeping 1 second...)
(If this test hangs for more than a few seconds, please report
 your glibc version and system details as FORCE_MONOTONIC_FIX
 issue at https://github.com/wolfcw/libfaketime)
Blocking signal 10
time()         : Current date and time: Wed Mar 16 09:11:31 2022
time(NULL)     : Seconds since Epoch  : 1647421891
ftime()        : Current date and time: Wed Mar 16 09:11:31 2022
(Intentionally sleeping 2 seconds...)
gettimeofday() : Current date and time: Wed Mar 16 09:11:33 2022
Caught signal 10
clock_gettime(): Current date and time: Wed Mar 16 09:11:33 2022
stat(): mod. time of file './timetest': Wed Mar 16 09:11:27 2022

=============================================================================

Running the test program with absolute date 2003-01-01 10:00:05 specified
$ LD_PRELOAD=/usr/lib/x86_64-linux-gnu/faketime/libfaketime.so.1 FAKETIME="2003-01-01 10:00:05" ./timetest
pthread_cond_timedwait: CLOCK_REALTIME test
(Intentionally sleeping 1 second...)
pthread_cond_timedwait: CLOCK_MONOTONIC test
(Intentionally sleeping 1 second...)
(If this test hangs for more than a few seconds, please report
 your glibc version and system details as FORCE_MONOTONIC_FIX
 issue at https://github.com/wolfcw/libfaketime)
Blocking signal 10
time()         : Current date and time: Wed Jan  1 10:00:05 2003
time(NULL)     : Seconds since Epoch  : 1041415205
ftime()        : Current date and time: Wed Jan  1 10:00:05 2003
(Intentionally sleeping 2 seconds...)
gettimeofday() : Current date and time: Wed Jan  1 10:00:05 2003
Caught signal 10
Caught signal 10
clock_gettime(): Current date and time: Wed Jan  1 10:00:05 2003
stat(): mod. time of file './timetest': Wed Jan  1 10:00:05 2003

=============================================================================

Running the test program with START date @2005-03-29 14:14:14 specified
$ LD_PRELOAD=/usr/lib/x86_64-linux-gnu/faketime/libfaketime.so.1 FAKETIME="@2005-03-29 14:14:14" ./timetest
pthread_cond_timedwait: CLOCK_REALTIME test
(Intentionally sleeping 1 second...)
pthread_cond_timedwait: CLOCK_MONOTONIC test
(Intentionally sleeping 1 second...)
(If this test hangs for more than a few seconds, please report
 your glibc version and system details as FORCE_MONOTONIC_FIX
 issue at https://github.com/wolfcw/libfaketime)
Blocking signal 10
time()         : Current date and time: Tue Mar 29 14:14:16 2005
time(NULL)     : Seconds since Epoch  : 1112105656
ftime()        : Current date and time: Tue Mar 29 14:14:16 2005
(Intentionally sleeping 2 seconds...)
gettimeofday() : Current date and time: Tue Mar 29 14:14:18 2005
Caught signal 10
clock_gettime(): Current date and time: Tue Mar 29 14:14:18 2005
stat(): mod. time of file './timetest': Tue Mar 29 14:14:03 2005

=============================================================================

Running the test program with 10 days negative offset specified
LD_PRELOAD=/usr/lib/x86_64-linux-gnu/faketime/libfaketime.so.1 FAKETIME="-10d" ./timetest
pthread_cond_timedwait: CLOCK_REALTIME test
(Intentionally sleeping 1 second...)
pthread_cond_timedwait: CLOCK_MONOTONIC test
(Intentionally sleeping 1 second...)
(If this test hangs for more than a few seconds, please report
 your glibc version and system details as FORCE_MONOTONIC_FIX
 issue at https://github.com/wolfcw/libfaketime)
Blocking signal 10
time()         : Current date and time: Sun Mar  6 09:11:43 2022
time(NULL)     : Seconds since Epoch  : 1646557903
ftime()        : Current date and time: Sun Mar  6 09:11:43 2022
(Intentionally sleeping 2 seconds...)
gettimeofday() : Current date and time: Sun Mar  6 09:11:45 2022
Caught signal 10
clock_gettime(): Current date and time: Sun Mar  6 09:11:45 2022
stat(): mod. time of file './timetest': Sun Mar  6 09:11:27 2022

=============================================================================

Running the test program with 10 days negative offset specified, and FAKE_STAT disabled $ LD_PRELOAD=/usr/lib/x86_64-linux-gnu/faketime/libfaketime.so.1 FAKETIME="-10d" NO_FAKE_STAT=1 ./timetest
pthread_cond_timedwait: CLOCK_REALTIME test
(Intentionally sleeping 1 second...)
pthread_cond_timedwait: CLOCK_MONOTONIC test
(Intentionally sleeping 1 second...)
(If this test hangs for more than a few seconds, please report
 your glibc version and system details as FORCE_MONOTONIC_FIX
 issue at https://github.com/wolfcw/libfaketime)
Blocking signal 10
time()         : Current date and time: Sun Mar  6 09:11:47 2022
time(NULL)     : Seconds since Epoch  : 1646557907
ftime()        : Current date and time: Sun Mar  6 09:11:47 2022
(Intentionally sleeping 2 seconds...)
gettimeofday() : Current date and time: Sun Mar  6 09:11:49 2022
Caught signal 10
clock_gettime(): Current date and time: Sun Mar  6 09:11:49 2022
stat(): mod. time of file './timetest': Wed Mar 16 09:11:27 2022

=============================================================================

Running the test program with 10 days positive offset specified, and speed-up factor $ LD_PRELOAD=/usr/lib/x86_64-linux-gnu/faketime/libfaketime.so.1 FAKETIME="+10d x1" ./timetest
pthread_cond_timedwait: CLOCK_REALTIME test
(Intentionally sleeping 1 second...)
pthread_cond_timedwait: CLOCK_MONOTONIC test
(Intentionally sleeping 1 second...)
(If this test hangs for more than a few seconds, please report
 your glibc version and system details as FORCE_MONOTONIC_FIX
 issue at https://github.com/wolfcw/libfaketime)
Blocking signal 10
time()         : Current date and time: Sat Mar 26 09:11:51 2022
time(NULL)     : Seconds since Epoch  : 1648285911
ftime()        : Current date and time: Sat Mar 26 09:11:51 2022
(Intentionally sleeping 2 seconds...)
gettimeofday() : Current date and time: Sat Mar 26 09:11:53 2022
Caught signal 10
clock_gettime(): Current date and time: Sat Mar 26 09:11:53 2022
stat(): mod. time of file './timetest': Wed Mar 16 09:11:27 2022

=============================================================================

Running the 'date' command with 15 days negative offset specified
$ LD_PRELOAD=/usr/lib/x86_64-linux-gnu/faketime/libfaketime.so.1 FAKETIME="-15d" date
Tue Mar  1 09:11:53 UTC 2022

=============================================================================
Testing finished.
gcc -std=gnu99 -Wall -DFAKE_STAT -Werror -Wextra -lrt -lpthread repeat_random.c -o repeat_random
./randomtest.sh
getrandom interception test successful.
sed s/SNIPPET_NAME/clock_gettime/g < _libtest.c | gcc -shared -o libclock_gettime.so -fpic -std=gnu99 -Wall -DFAKE_STAT -Werror -Wextra -x c - sed s/SNIPPET_NAME/clock_gettime/g < _use_lib_test.c | gcc -L. -o use_lib_clock_gettime -std=gnu99 -Wall -DFAKE_STAT -Werror -Wextra -x c - -lclock_gettime
./test_constructors.sh clock_gettime
Testing library init for clock_gettime (no LD_PRELOAD)
[libclock_gettime] clock_gettime(CLOCK_REALTIME[0], &ts) -> {1647421913, 997649193} called clock_gettime_as_needed() [use_lib_clock_gettime] clock_gettime(CLOCK_REALTIME[0], &ts) -> {1647421913, 997703879}
Testing library init for clock_gettime (LD_PRELOAD)
[libclock_gettime] clock_gettime(CLOCK_REALTIME[0], &ts) -> {1647421913, 999015929} called clock_gettime_as_needed() [use_lib_clock_gettime] clock_gettime(CLOCK_REALTIME[0], &ts) -> {1647421913, 999088598} sed s/SNIPPET_NAME/clock_gettime_heap/g < _libtest.c | gcc -shared -o libclock_gettime_heap.so -fpic -std=gnu99 -Wall -DFAKE_STAT -Werror -Wextra -x c - sed s/SNIPPET_NAME/clock_gettime_heap/g < _use_lib_test.c | gcc -L. -o use_lib_clock_gettime_heap -std=gnu99 -Wall -DFAKE_STAT -Werror -Wextra -x c - -lclock_gettime_heap
./test_constructors.sh clock_gettime_heap
Testing library init for clock_gettime_heap (no LD_PRELOAD)
[libclock_gettime_heap] clock_gettime_heap(CLOCK_REALTIME[0], ts) -> {1647421914, 110492288} called clock_gettime_heap_as_needed() [use_lib_clock_gettime_heap] clock_gettime_heap(CLOCK_REALTIME[0], ts) -> {1647421914, 110529378}
Testing library init for clock_gettime_heap (LD_PRELOAD)
[libclock_gettime_heap] clock_gettime_heap(CLOCK_REALTIME[0], ts) -> {1647421914, 111842645} called clock_gettime_heap_as_needed() [use_lib_clock_gettime_heap] clock_gettime_heap(CLOCK_REALTIME[0], ts) -> {1647421914, 111917289} sed s/SNIPPET_NAME/getentropy/g < _libtest.c | gcc -shared -o libgetentropy.so -fpic -std=gnu99 -Wall -DFAKE_STAT -Werror -Wextra -x c - sed s/SNIPPET_NAME/getentropy/g < _use_lib_test.c | gcc -L. -o use_lib_getentropy -std=gnu99 -Wall -DFAKE_STAT -Werror -Wextra -x c - -lgetentropy
./test_constructors.sh getentropy
Testing library init for getentropy (no LD_PRELOAD)
[libgetentropy] getentropy() yielded 0x87e53df0
called getentropy_as_needed() [use_lib_getentropy] getentropy() yielded 0xc0f84d64
Testing library init for getentropy (LD_PRELOAD)
[libgetentropy] getentropy() yielded 0x233dc3c8
called getentropy_as_needed() [use_lib_getentropy] getentropy() yielded 0xf704fd57 sed s/SNIPPET_NAME/getpid/g < _libtest.c | gcc -shared -o libgetpid.so -fpic -std=gnu99 -Wall -DFAKE_STAT -Werror -Wextra -x c - sed s/SNIPPET_NAME/getpid/g < _use_lib_test.c | gcc -L. -o use_lib_getpid -std=gnu99 -Wall -DFAKE_STAT -Werror -Wextra -x c - -lgetpid
./test_constructors.sh getpid
Testing library init for getpid (no LD_PRELOAD)
[libgetpid] getpid() yielded 1885
  called getpid_as_needed() [use_lib_getpid] getpid() yielded 1885
Testing library init for getpid (LD_PRELOAD)
[libgetpid] getpid() yielded 1886
  called getpid_as_needed() [use_lib_getpid] getpid() yielded 1886
sed s/SNIPPET_NAME/getrandom/g < _libtest.c | gcc -shared -o libgetrandom.so -fpic -std=gnu99 -Wall -DFAKE_STAT -Werror -Wextra -x c - sed s/SNIPPET_NAME/getrandom/g < _use_lib_test.c | gcc -L. -o use_lib_getrandom -std=gnu99 -Wall -DFAKE_STAT -Werror -Wextra -x c - -lgetrandom
./test_constructors.sh getrandom
Testing library init for getrandom (no LD_PRELOAD)
[libgetrandom] getrandom() yielded 0x37d53461
called getrandom_as_needed() [use_lib_getrandom] getrandom() yielded 0x8e37fa7d
Testing library init for getrandom (LD_PRELOAD)
[libgetrandom] getrandom() yielded 0x09641fd7
called getrandom_as_needed() [use_lib_getrandom] getrandom() yielded 0xa2e27d06 sed s/SNIPPET_NAME/syscall/g < _libtest.c | gcc -shared -o libsyscall.so -fpic -std=gnu99 -Wall -DFAKE_STAT -Werror -Wextra -x c - sed s/SNIPPET_NAME/syscall/g < _use_lib_test.c | gcc -L. -o use_lib_syscall -std=gnu99 -Wall -DFAKE_STAT -Werror -Wextra -x c - -lsyscall
./test_constructors.sh syscall
Testing library init for syscall (no LD_PRELOAD)
[libsyscall] syscall(__NR_getuid) -> 1000
  called syscall_as_needed() [use_lib_syscall] syscall(__NR_getuid) -> 1000
Testing library init for syscall (LD_PRELOAD)
[libsyscall] syscall(__NR_getuid) -> 1000
  called syscall_as_needed() [use_lib_syscall] syscall(__NR_getuid) -> 1000
sed s/SNIPPET_NAME/syscall_clock_gettime/g < _libtest.c | gcc -shared -o libsyscall_clock_gettime.so -fpic -std=gnu99 -Wall -DFAKE_STAT -Werror -Wextra -x c - sed s/SNIPPET_NAME/syscall_clock_gettime/g < _use_lib_test.c | gcc -L. -o use_lib_syscall_clock_gettime -std=gnu99 -Wall -DFAKE_STAT -Werror -Wextra -x c - -lsyscall_clock_gettime
./test_constructors.sh syscall_clock_gettime
Testing library init for syscall_clock_gettime (no LD_PRELOAD)
[libsyscall_clock_gettime] syscall(__NR_gettime, CLOCK_REALTIME[0], &ts) -> {1647421914, 700243596} called syscall_clock_gettime_as_needed() [use_lib_syscall_clock_gettime] syscall(__NR_gettime, CLOCK_REALTIME[0], &ts) -> {1647421914, 700290345}
Testing library init for syscall_clock_gettime (LD_PRELOAD)
[libsyscall_clock_gettime] syscall(__NR_gettime, CLOCK_REALTIME[0], &ts) -> {1647421914, 701333440} called syscall_clock_gettime_as_needed() [use_lib_syscall_clock_gettime] syscall(__NR_gettime, CLOCK_REALTIME[0], &ts) -> {1647421914, 701598199} sed s/SNIPPET_NAME/syscall_clock_gettime_heap/g < _libtest.c | gcc -shared -o libsyscall_clock_gettime_heap.so -fpic -std=gnu99 -Wall -DFAKE_STAT -Werror -Wextra -x c - sed s/SNIPPET_NAME/syscall_clock_gettime_heap/g < _use_lib_test.c | gcc -L. -o use_lib_syscall_clock_gettime_heap -std=gnu99 -Wall -DFAKE_STAT -Werror -Wextra -x c - -lsyscall_clock_gettime_heap
./test_constructors.sh syscall_clock_gettime_heap
Testing library init for syscall_clock_gettime_heap (no LD_PRELOAD)
[libsyscall_clock_gettime_heap] syscall(__NR_gettime, CLOCK_REALTIME[0], ts) -> {1647421914, 836601307} called syscall_clock_gettime_heap_as_needed() [use_lib_syscall_clock_gettime_heap] syscall(__NR_gettime, CLOCK_REALTIME[0], ts) -> {1647421914, 836636542}
Testing library init for syscall_clock_gettime_heap (LD_PRELOAD)
[libsyscall_clock_gettime_heap] syscall(__NR_gettime, CLOCK_REALTIME[0], ts) -> {1647421914, 837671408} called syscall_clock_gettime_heap_as_needed() [use_lib_syscall_clock_gettime_heap] syscall(__NR_gettime, CLOCK_REALTIME[0], ts) -> {1647421914, 837931171} sed s/SNIPPET_NAME/time/g < _libtest.c | gcc -shared -o libtime.so -fpic -std=gnu99 -Wall -DFAKE_STAT -Werror -Wextra -x c - sed s/SNIPPET_NAME/time/g < _use_lib_test.c | gcc -L. -o use_lib_time -std=gnu99 -Wall -DFAKE_STAT -Werror -Wextra -x c - -ltime
./test_constructors.sh time
Testing library init for time (no LD_PRELOAD)
[libtime] time() yielded 1647421914
  called time_as_needed() [use_lib_time] time() yielded 1647421914
Testing library init for time (LD_PRELOAD)
[libtime] time() yielded 1647421914
  called time_as_needed() [use_lib_time] time() yielded 1647421914
sed s/SNIPPET_NAME/clock_gettime/g < _run_test.c | gcc -o run_clock_gettime -std=gnu99 -Wall -DFAKE_STAT -Werror -Wextra -x c - sed s/SNIPPET_NAME/clock_gettime_heap/g < _run_test.c | gcc -o run_clock_gettime_heap -std=gnu99 -Wall -DFAKE_STAT -Werror -Wextra -x c - sed s/SNIPPET_NAME/getentropy/g < _run_test.c | gcc -o run_getentropy -std=gnu99 -Wall -DFAKE_STAT -Werror -Wextra -x c - sed s/SNIPPET_NAME/getpid/g < _run_test.c | gcc -o run_getpid -std=gnu99 -Wall -DFAKE_STAT -Werror -Wextra -x c - sed s/SNIPPET_NAME/getrandom/g < _run_test.c | gcc -o run_getrandom -std=gnu99 -Wall -DFAKE_STAT -Werror -Wextra -x c - sed s/SNIPPET_NAME/syscall_clock_gettime/g < _run_test.c | gcc -o run_syscall_clock_gettime -std=gnu99 -Wall -DFAKE_STAT -Werror -Wextra -x c - sed s/SNIPPET_NAME/syscall_clock_gettime_heap/g < _run_test.c | gcc -o run_syscall_clock_gettime_heap -std=gnu99 -Wall -DFAKE_STAT -Werror -Wextra -x c - sed s/SNIPPET_NAME/time/g < _run_test.c | gcc -o run_time -std=gnu99 -Wall -DFAKE_STAT -Werror -Wextra -x c - ./test_variable_data.sh clock_gettime clock_gettime_heap getentropy getpid getrandom syscall_clock_gettime syscall_clock_gettime_heap time [syscall_clock_gettime] Set FAKETIME="2020-01-01 00:00:00", but got two different outputs: - [run_syscall_clock_gettime] syscall(__NR_gettime, CLOCK_REALTIME[0], &ts) -> {1647421915, 413151395} - [run_syscall_clock_gettime] syscall(__NR_gettime, CLOCK_REALTIME[0], &ts) -> {1647421915, 415008524} [syscall_clock_gettime_heap] Set FAKETIME="2020-02-02 02:02:02+00:00", but got two different outputs: - [run_syscall_clock_gettime_heap] syscall(__NR_gettime, CLOCK_REALTIME[0], ts) -> {1647421915, 418359340} - [run_syscall_clock_gettime_heap] syscall(__NR_gettime, CLOCK_REALTIME[0], ts) -> {1647421915, 420163295}
Sleeping 2 seconds...done
[syscall_clock_gettime] Vary across delay of 2 seconds (FAKETIME="2020-01-01 00:00:00"): - before: [run_syscall_clock_gettime] syscall(__NR_gettime, CLOCK_REALTIME[0], &ts) -> {1647421915, 413151395} - after: [run_syscall_clock_gettime] syscall(__NR_gettime, CLOCK_REALTIME[0], &ts) -> {1647421917, 481232604} [syscall_clock_gettime_heap] Vary across delay of 2 seconds (FAKETIME="2020-02-02 02:02:02+00:00"): - before: [run_syscall_clock_gettime_heap] syscall(__NR_gettime, CLOCK_REALTIME[0], ts) -> {1647421915, 418359340} - after: [run_syscall_clock_gettime_heap] syscall(__NR_gettime, CLOCK_REALTIME[0], ts) -> {1647421917, 484770078}
Got 4 errors, failing
make: *** [Makefile:53: test_variable_data] Error 1
rm use_lib_time libgetentropy.so use_lib_clock_gettime_heap use_lib_clock_gettime use_lib_getpid libclock_gettime.so libtime.so libgetrandom.so use_lib_syscall libclock_gettime_heap.so use_lib_syscall_clock_gettime_heap use_lib_getentropy libsyscall_clock_gettime_heap.so libsyscall.so use_lib_getrandom libsyscall_clock_gettime.so libgetpid.so use_lib_syscall_clock_gettime
autopkgtest [09:11:57]: test upstream

Attachment: OpenPGP_signature
Description: OpenPGP digital signature

Reply via email to