Bug 1366631

Summary: vhangup.test failure
Product: Red Hat Developer Toolset Reporter: Martin Cermak <mcermak>
Component: straceAssignee: DJ Delorie <dj>
Status: CLOSED ERRATA QA Contact: Martin Cermak <mcermak>
Severity: low Docs Contact:
Priority: low    
Version: DTS 6.0 RHEL 7CC: mnewsome
Target Milestone: alpha   
Target Release: 6.0   
Hardware: Unspecified   
OS: Linux   
Whiteboard:
Fixed In Version: devtoolset-6-strace-4.12-3.el{6,7} Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-11-15 10:15:28 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:

Description Martin Cermak 2016-08-12 13:29:48 UTC
The vhangup.test in devtoolset-6-strace-4.12-2.el[67].src.rpm seems to fail on all the supported environments for me. Here are the logs: 

=======
 7.3 S x86_64 [6] # cat tests/vhangup.log
unknown errno 0
vhangup.test: failed test: ./vhangup failed
 7.3 S x86_64 [6] # cat tests/vhangup.trs
:test-result: FAIL
:global-test-result: FAIL
:recheck: yes
:copy-in-global-log: yes
 7.3 S x86_64 [6] # 
=======

After applying upstream commit cb44289ee3fd1482d3b8551d2e3b4568eb57e114 correcting the testcase, the failure seems gone:

=======
 7.3 S x86_64 [6] # cat tests/vhangup.log
 7.3 S x86_64 [6] # cat tests/vhangup.trs
:test-result: PASS
:global-test-result: PASS
:recheck: no
:copy-in-global-log: no
 7.3 S x86_64 [6] # 
=======

Following is the patch in question:

=======
commit cb44289ee3fd1482d3b8551d2e3b4568eb57e114
Author: Dmitry V. Levin <ldv>
Date:   Tue Jul 26 10:20:24 2016 +0000

    tests: fix vhangup.test
    
    * tests/vhangup.c (main): Fix expected output for the case when
    the calling process has CAP_SYS_TTY_CONFIG capability.
    
    Reported-by: Yun-Chih Chen <b03902074.tw>

diff --git a/tests/vhangup.c b/tests/vhangup.c
index ba90319..468f334 100644
--- a/tests/vhangup.c
+++ b/tests/vhangup.c
@@ -13,7 +13,18 @@ main(void)
                perror_msg_and_skip("setsid");
 
        long rc = syscall(__NR_vhangup);
-       printf("vhangup() = %ld %s (%m)\n", rc, errno2name());
+
+       /*
+        * On setsid() success, the new session has no controlling terminal,
+        * therefore a subsequent vhangup() has nothing to hangup.
+        *
+        * The system call, however, returns 0 iff the calling process
+        * has CAP_SYS_TTY_CONFIG capability.
+        */
+       if (rc)
+               printf("vhangup() = %ld %s (%m)\n", rc, errno2name());
+       else
+               puts("vhangup() = 0");
 
        puts("+++ exited with 0 +++");
        return 0;
=======

Please, consider backporting this patch.

Comment 4 errata-xmlrpc 2016-11-15 10:15:28 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://rhn.redhat.com/errata/RHBA-2016-2743.html