HomeAbout Us A-Z IndexSearch * Contact Us Register LoginPress Shop

The Open Brand -- Problem Reporting and Interpretations System


Problem Report 2606 Details

Help Show help | Quick Search | Submit a Test Suite Support Request | Click here to view your privileges

This page provides all information on Problem Report 2606.


Report 2606 Actions


    Problem Report Number 2606
    Submitter's Classification Test Suite problem
    State Resolved
    Resolution Test Suite Deficiency (TSD)
    Problem Resolution ID TSD.X.1353
    Raised 2015-04-18 00:14
    Updated 2015-04-20 11:35
    Published 2015-04-20 11:35
    Product Standard Internationalised System Calls and Libraries Extended V4 (UNIX V7)
    Certification Program The Open Brand certification program
    Test Suite VSX4 version 4.7.9NW
    Test Identification /tset/ANSI.os/streamio/perror/T.perror{9}
    Specification Base Specifications Issue 7
    Problem Summary Wrong pipe setup makes the test program time out in /tset/ANSI.os/streamio/perror/T.perror{9}
    Problem Text T.perror{9} finishes with UNRESOLVED results on Solaris 12 in UNIX10 mode.

    /vsx/src/vsx/SRC/common/tsetlib/do_ferr.c:
    325 if (type != 'r' || errnum == EAGAIN)
    326 {
    327 if (setnonblock(fd, TRUE) != 0)
    328 DBUG_RETURN(0);
    329 else
    330 PATH_TRACE;
    331 }
    332 else
    333 PATH_TRACE;
    334
    335 if (type != 'r')
    336 {
    337 while (write(fd, buf, BLK_SIZE) > 0)
    338 ;
    339 while (write(fd, "z", 1) > 0)
    340 ;
    341 errno = 0;
    342 if (errnum == EINTR && setnonblock(fd, FALSE) != 0)
    343 DBUG_RETURN(0);
    344 else
    345 PATH_TRACE;
    346 }

    This sets up a pipe and fills the buffer. Than it sets pipe to blocking mode.
    11462: pipe() = 0 [2]
    11462: fcntl(2, F_GETFL) = 2
    11462: fcntl(2, F_SETFL, FWRITE|FNONBLOCK) = 0
    11462: write(2, "".., 512) = 512
    ...
    11462: write(2, "".., 512) = 512
    11462: write(2, "".., 512) Err#11 EAGAIN
    11462: write(2, " z", 1) Err#11 EAGAIN
    11462: fcntl(2, F_GETFL) = 130
    11462: fcntl(2, F_SETFL, FWRITE) = 0

    Finally it issues perror() on the descriptor expecting EINTR. It gots
    SIGALRM:
    11464: alarm(25) = 0
    11462: waitid(P_PID, 11464, 0xFFFFFFFF7FFFE190, WEXITED|WTRAPPED)
    (sleeping...)
    11464: write(2, 0x100007FB8, 7) (sleeping...)
    11461: Received signal #14, SIGALRM, in waitid() [caught]
    Test Output child process timed out
    fgets() failed to read data from pipe - errno 11(EAGAIN)

    Review Information

    Review Type TSMA Review
    Start Date 2015-04-18 00:14
    Last Updated 2015-04-20 10:39
    Completed 2015-04-20 10:39
    Status Complete
    Review Recommendation Test Suite Deficiency (TSD)
    Review Response This failure is caused by a timing fault in the test (the child timeout
    is the same length as the alarm time intended to cause the EINTR error).
    Therefore this is accepted as a fault in the test suite.

    Review Type SA Review
    Start Date 2015-04-20 18:39
    Last Updated 2015-04-20 11:35
    Completed 2015-04-20 11:35
    Status Complete
    Review Resolution Test Suite Deficiency (TSD)
    Review Conclusion A test suite deficiency is granted.

    Problem Reporting System Options:

     

    Back   


Contact the Certification Authority