Bug 1747214

Summary: [RHEL 8] ioctl_evdev-success tests from strace internal testsuite fail tests-m32
Product: Red Hat Enterprise Linux 8 Reporter: Eugene Syromiatnikov <esyr>
Component: straceAssignee: Eugene Syromiatnikov <esyr>
strace sub component: system-version QA Contact: Edjunior Barbosa Machado <emachado>
Status: CLOSED ERRATA Docs Contact:
Severity: unspecified    
Priority: unspecified CC: dj, emachado, law, mnewsome, ohudlick, tborcin
Version: 8.2   
Target Milestone: rc   
Target Release: 8.2   
Hardware: x86_64   
OS: Unspecified   
Whiteboard:
Fixed In Version: strace-4.24-6.el8 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: 1746478 Environment:
Last Closed: 2020-04-28 17:00:14 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1710951    
Attachments:
Description Flags
strace-4.24-6.el8.x86_64 make check output none

Description Eugene Syromiatnikov 2019-08-29 23:29:32 UTC
+++ This bug was initially created as a clone of Bug #1746478 +++

Description of problem:
2 ioctl_evdev-success tests from devtoolset-9-strace internal testsuite are failing in rhel-7.7 x86_64 tests-m32:

(...)
FAIL: ioctl_evdev-success-v.test
FAIL: ioctl_evdev-success.test
(...)

From rpmbuild/BUILD/strace-5.1/tests-m32/test-suite.log:

FAIL: ioctl_evdev-success-v
===========================

--- exp.0       2019-08-28 09:54:38.843189792 -0400
+++ out.0       2019-08-28 09:54:38.857189528 -0400
@@ -258,10 +258,10 @@
 ioctl(-1, EVIOCGABS(ABS_X), {value=4294967295, minimum=4294967295, maximum=4294967295, fuzz=4294967295, flat=4294967295, resolution=4294967295}) = 0 (INJECTED)
 ioctl(-1, EVIOCGABS(ABS_Y), {value=4294967295, minimum=4294967295, maximum=4294967295, fuzz=4294967295, flat=4294967295, resolution=4294967295}) = 0 (INJECTED)
 ioctl(-1, EVIOCGABS(ABS_Y), {value=4294967295, minimum=4294967295, maximum=4294967295, fuzz=4294967295, flat=4294967295, resolution=4294967295}) = 0 (INJECTED)
-ioctl(-1, EVIOCGBIT(0, 0), [EV_ABS, EV_MSC, EV_LED, EV_SND, EV_PWR]) = 0 (INJECTED)
-ioctl(-1, EVIOCGBIT(0, 0), [EV_ABS, EV_MSC, EV_LED]) = 0 (INJECTED)
-ioctl(-1, EVIOCGBIT(0, 0), [ 0 ]) = 0 (INJECTED)
-ioctl(-1, EVIOCGBIT(EV_KEY, 0), [KEY_1, KEY_2]) = 0 (INJECTED)
+ioctl(-1, EVIOCGBIT(0, 0), 0xff7facb4) = 0 (INJECTED)
+ioctl(-1, EVIOCGBIT(0, 0), 0xff7facb8) = 0 (INJECTED)
+ioctl(-1, EVIOCGBIT(0, 0), 0xff7facbc) = 0 (INJECTED)
+ioctl(-1, EVIOCGBIT(EV_KEY, 0), 0xff7facd0) = 0 (INJECTED)
 ioctl(-1, EVIOCGMTSLOTS(12), {code=ABS_MT_SLOT, values=[1, 3]}) = 0 (INJECTED)
 ioctl(-1, EVIOCGMTSLOTS(8), {code=0xffffffff /* ABS_MT_??? */, values=[1]}) = 0 (INJECTED)
 +++ exited with 0 +++
ioctl_evdev-success-v.test: failed test: ../../strace -a16 -v -e trace=ioctl -e inject=ioctl:retval=0:when=256+ ../ioctl_evdev-success-v 256 0 output mismatch
FAIL ioctl_evdev-success-v.test (exit status: 1)

FAIL: ioctl_evdev-success
=========================

--- exp.0       2019-08-28 09:54:38.970187400 -0400
+++ out.0       2019-08-28 09:54:38.995186929 -0400
@@ -258,10 +258,10 @@
 ioctl(-1, EVIOCGABS(ABS_X), {value=4294967295, minimum=4294967295, ...}) = 0 (INJECTED)
 ioctl(-1, EVIOCGABS(ABS_Y), {value=4294967295, minimum=4294967295, ...}) = 0 (INJECTED)
 ioctl(-1, EVIOCGABS(ABS_Y), {value=4294967295, minimum=4294967295, ...}) = 0 (INJECTED)
-ioctl(-1, EVIOCGBIT(0, 0), [EV_ABS, EV_MSC, EV_LED, EV_SND, ...]) = 0 (INJECTED)
-ioctl(-1, EVIOCGBIT(0, 0), [EV_ABS, EV_MSC, EV_LED]) = 0 (INJECTED)
-ioctl(-1, EVIOCGBIT(0, 0), [ 0 ]) = 0 (INJECTED)
-ioctl(-1, EVIOCGBIT(EV_KEY, 0), [KEY_1, KEY_2]) = 0 (INJECTED)
+ioctl(-1, EVIOCGBIT(0, 0), 0xffe70a24) = 0 (INJECTED)
+ioctl(-1, EVIOCGBIT(0, 0), 0xffe70a28) = 0 (INJECTED)
+ioctl(-1, EVIOCGBIT(0, 0), 0xffe70a2c) = 0 (INJECTED)
+ioctl(-1, EVIOCGBIT(EV_KEY, 0), 0xffe70a40) = 0 (INJECTED)
 ioctl(-1, EVIOCGMTSLOTS(12), {code=ABS_MT_SLOT, values=[1, 3]}) = 0 (INJECTED)
 ioctl(-1, EVIOCGMTSLOTS(8), {code=0xffffffff /* ABS_MT_??? */, values=[1]}) = 0 (INJECTED)
 +++ exited with 0 +++
ioctl_evdev-success.test: failed test: ../../strace -a16 -e trace=ioctl -e inject=ioctl:retval=0:when=256+ ../ioctl_evdev-success 256 0 output mismatch
FAIL ioctl_evdev-success.test (exit status: 1)

These failures occur only in tests-m32/ run, not in tests/. They were also not reproducible in other rhel-7.7 supported arches.

Version-Release number of selected component (if applicable):
devtoolset-9-strace-5.1-1.el7.x86_64
RHEL-7.7-updates-20190813.0

Steps to Reproduce:
1. rpm -ivh devtoolset-9-strace-5.1-1.el7.src.rpm 
2. rpmbuild -bc rpmbuild/SPECS/strace.spec 
3. make -C rpmbuild/BUILD/strace-5.1/ -k check RUNTESTFLAGS="--tool_exec=/opt/rh/devtoolset-9/root/usr/bin/strace"

--- Additional comment from Eugene Syromiatnikov on 2019-08-29 10:02:47 UTC ---

A side note: strace does not use dejagnu framework (to which "--tool_exec" option and RUNTESTFLAGS are specific), but rather generic automake-provided test invocation infrastructure with a standard test driver. It is still, however, possible to override path to the strace binary with STRACE variable (see tests/init.sh file in strace repository): "make -j6 -C rpmbuild/BUILD/strace-5.1/ -k check STRACE=/opt/rh/devtoolset-9/root/usr/bin/strace".

The other thing is that in addition to build dependencies (and devtoolset-9-strace itself), glibc-devel.i686 and libgcc.i686 have to be installed.

Comment 2 Edjunior Barbosa Machado 2020-01-27 16:17:31 UTC
Created attachment 1655709 [details]
strace-4.24-6.el8.x86_64 make check output

For some reason 'make check' for tests-m32 from strace-4.24-6.el8.x86_64 (RHEL-8.2.0-20200122.n.0) is failing with "Target 'test-suite.log' not remade because of errors.", not generating test-suite.log file.

Apparently, the aforementioned testcases are not being run for tests-m32/ (they are listed as successful only on 'make check' from tests/ dir).

Comment 3 Edjunior Barbosa Machado 2020-01-27 16:22:28 UTC
(In reply to Edjunior Barbosa Machado from comment #2)
> Created attachment 1655709 [details]
> strace-4.24-6.el8.x86_64 make check output
> 
> For some reason 'make check' for tests-m32 from strace-4.24-6.el8.x86_64
> (RHEL-8.2.0-20200122.n.0) is failing with "Target 'test-suite.log' not
> remade because of errors.", not generating test-suite.log file.
> 
> Apparently, the aforementioned testcases are not being run for tests-m32/
> (they are listed as successful only on 'make check' from tests/ dir).

Apart from that, the only failing tests listed on 'make check' output from tests-m32/ dir are coincidentally tests with similar name:

FAIL: ioctl_evdev.gen.test
FAIL: ioctl_evdev-v.gen.test

From the testcases' log files tests-m32/ioctl_evdev.gen.log:

+ /usr/bin/strace -V
+ TIMEOUT='timeout -k 5 -s XCPU 1500'
+ timeout -k 5 -s XCPU 1500 true
+ '[' 1 -eq 0 ']'
+ exec timeout -k 5 -s XCPU 1500 ./ioctl_evdev.gen.test
++ check_prog grep
++ type grep
++ run_prog
++ '[' 0 -eq 0 ']'
++ set -- ../ioctl_evdev
++ args=../ioctl_evdev
++ ../ioctl_evdev
++ run_strace -a16 -eioctl ../ioctl_evdev
++ args='-a16 -eioctl ../ioctl_evdev'
++ /usr/bin/strace -o log -a16 -eioctl ../ioctl_evdev
++ grep -v '^ioctl([012][,<]'
++ match_diff out exp
++ local output expected error
++ '[' 2 -eq 0 ']'
++ output=out
++ shift
++ '[' 1 -eq 0 ']'
++ expected=exp
++ shift
++ '[' 0 -eq 0 ']'
++ error='/usr/bin/strace -a16 -eioctl ../ioctl_evdev output mismatch'
++ check_prog diff
++ type diff
++ diff -u -- exp out
--- exp>2020-01-24 18:26:03.248341657 +0100
+++ out>2020-01-24 18:26:03.250341660 +0100
@@ -28,7 +28,7 @@
 ioctl(-1, EVIOCSABS(0x3e /* ABS_??? */), NULL) = -1 EBADF (Bad file descriptor)
 ioctl(-1, EVIOCGABS(0x3f /* ABS_??? */), NULL) = -1 EBADF (Bad file descriptor)
 ioctl(-1, EVIOCSABS(0x3f /* ABS_??? */), NULL) = -1 EBADF (Bad file descriptor)
-ioctl(-1, EVIOCGBIT(EV_SYN, 0), NULL) = -1 EBADF (Bad file descriptor)
+ioctl(-1, EVIOCGBIT(0, 0), NULL) = -1 EBADF (Bad file descriptor)
 ioctl(-1, EVIOCGBIT(EV_KEY, 1), NULL) = -1 EBADF (Bad file descriptor)
 ioctl(-1, EVIOCGBIT(EV_REL, 2), NULL) = -1 EBADF (Bad file descriptor)
 ioctl(-1, EVIOCGBIT(EV_ABS, 3), NULL) = -1 EBADF (Bad file descriptor)
++ fail_ '/usr/bin/strace -a16 -eioctl ../ioctl_evdev output mismatch'
++ warn_ 'ioctl_evdev.gen.test: failed test: /usr/bin/strace -a16 -eioctl ../ioctl_evdev output mismatch'
++ printf '%s\n' 'ioctl_evdev.gen.test: failed test: /usr/bin/strace -a16 -eioctl ../ioctl_evdev output mismatch'
ioctl_evdev.gen.test: failed test: /usr/bin/strace -a16 -eioctl ../ioctl_evdev output mismatch
++ exit 1

and tests-m32/ioctl_evdev-v.gen.log:

+ /usr/bin/strace -V
+ TIMEOUT='timeout -k 5 -s XCPU 1500'
+ timeout -k 5 -s XCPU 1500 true
+ '[' 1 -eq 0 ']'
+ exec timeout -k 5 -s XCPU 1500 ./ioctl_evdev-v.gen.test
++ check_prog grep
++ type grep
++ run_prog
++ '[' 0 -eq 0 ']'
++ set -- ../ioctl_evdev-v
++ args=../ioctl_evdev-v
++ ../ioctl_evdev-v
++ run_strace -a16 -eioctl -v ../ioctl_evdev-v
++ args='-a16 -eioctl -v ../ioctl_evdev-v'
++ /usr/bin/strace -o log -a16 -eioctl -v ../ioctl_evdev-v
++ grep -v '^ioctl([012][,<]'
++ match_diff out exp
++ local output expected error
++ '[' 2 -eq 0 ']'
++ output=out
++ shift
++ '[' 1 -eq 0 ']'
++ expected=exp
++ shift
++ '[' 0 -eq 0 ']'
++ error='/usr/bin/strace -a16 -eioctl -v ../ioctl_evdev-v output mismatch'
++ check_prog diff
++ type diff
++ diff -u -- exp out
--- exp>2020-01-24 18:26:03.333341802 +0100
+++ out>2020-01-24 18:26:03.335341806 +0100
@@ -28,7 +28,7 @@
 ioctl(-1, EVIOCSABS(0x3e /* ABS_??? */), NULL) = -1 EBADF (Bad file descriptor)
 ioctl(-1, EVIOCGABS(0x3f /* ABS_??? */), NULL) = -1 EBADF (Bad file descriptor)
 ioctl(-1, EVIOCSABS(0x3f /* ABS_??? */), NULL) = -1 EBADF (Bad file descriptor)
-ioctl(-1, EVIOCGBIT(EV_SYN, 0), NULL) = -1 EBADF (Bad file descriptor)
+ioctl(-1, EVIOCGBIT(0, 0), NULL) = -1 EBADF (Bad file descriptor)
 ioctl(-1, EVIOCGBIT(EV_KEY, 1), NULL) = -1 EBADF (Bad file descriptor)
 ioctl(-1, EVIOCGBIT(EV_REL, 2), NULL) = -1 EBADF (Bad file descriptor)
 ioctl(-1, EVIOCGBIT(EV_ABS, 3), NULL) = -1 EBADF (Bad file descriptor)
++ fail_ '/usr/bin/strace -a16 -eioctl -v ../ioctl_evdev-v output mismatch'
++ warn_ 'ioctl_evdev-v.gen.test: failed test: /usr/bin/strace -a16 -eioctl -v ../ioctl_evdev-v output mismatch'
++ printf '%s\n' 'ioctl_evdev-v.gen.test: failed test: /usr/bin/strace -a16 -eioctl -v ../ioctl_evdev-v output mismatch'
ioctl_evdev-v.gen.test: failed test: /usr/bin/strace -a16 -eioctl -v ../ioctl_evdev-v output mismatch
++ exit 1

Comment 4 Eugene Syromiatnikov 2020-01-29 19:07:57 UTC
(In reply to Edjunior Barbosa Machado from comment #3)
> Apart from that, the only failing tests listed on 'make check' output from
> tests-m32/ dir are coincidentally tests with similar name:
> 
> FAIL: ioctl_evdev.gen.test
> FAIL: ioctl_evdev-v.gen.test

Should be fixed with [1].

(In reply to Edjunior Barbosa Machado from comment #2)
> Created attachment 1655709 [details]
> strace-4.24-6.el8.x86_64 make check output
> 
> For some reason 'make check' for tests-m32 from strace-4.24-6.el8.x86_64
> (RHEL-8.2.0-20200122.n.0) is failing with "Target 'test-suite.log' not
> remade because of errors.", not generating test-suite.log file.

Should be fixed with [2].

> Apparently, the aforementioned testcases are not being run for tests-m32/
> (they are listed as successful only on 'make check' from tests/ dir).

Should be fixed with [3].

All these commits are included in the strace-4.24-8.el8 build.

[1] http://pkgs.devel.redhat.com/cgit/rpms/strace/commit/?h=rhel-8.2.0&id=8aeff7461e62b403550ba61c899fcba5ec0c4c18
[2] http://pkgs.devel.redhat.com/cgit/rpms/strace/commit/?h=rhel-8.2.0&id=f934780aae26160d21307ccf2945a76018774e02
[3] http://pkgs.devel.redhat.com/cgit/rpms/strace/commit/?h=rhel-8.2.0&id=64aa6f5a4e02622999ae2832ab21f5df14e1e904

Comment 5 Edjunior Barbosa Machado 2020-02-10 17:29:16 UTC
Verified that none the tests fail with strace-4.24-9.el8.x86_64 (both tests and tests-m32):

PASS: ioctl_evdev-success.test
PASS: ioctl_evdev-success-v.test
(...)
PASS: ioctl_evdev-v.gen.test

Test logs on RHEL-8.2.0-20200203.n.0 x86_64:

https://beaker.engineering.redhat.com/tasks/executed?arch_id=2&task=%2Ftools%2Fstrace%2FSanity%2Finternal-tests&job_id=4048742&job_id=4049078

Comment 7 errata-xmlrpc 2020-04-28 17:00:14 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2020:1888