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

The Open Brand -- Problem Reporting and Interpretations System


Problem Report 1045 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 1045.


Report 1045 Actions


    Problem Report Number 1045
    Submitter's Classification Test Suite problem
    State Resolved
    Resolution Rejected (REJ)
    Problem Resolution ID REJ.X.0284
    Raised 2001-04-23 08:00
    Updated 2003-03-13 08:00
    Published null
    Product Standard Commands and Utilities V3 (UNIX 98)
    Certification Program The Open Brand certification program
    Test Suite VSC version 5.1.2
    Test Identification XOPEN.cmd/fuser 1028, 1029
    Problem Summary PG4C.00136 These tests may fail on fast systems due to a timing problem. However, a work-around can be used.
    Problem Text

    On faster machines, the test devlops timing problems.

    Snippet from the test code:

    sleep 120 > 1028.1.tst &
    if [ $? -ne 0 ]; then
    SetResult $TET_UNRESOLVED "Command failed: 'sleep 120 > 1028.1.tst &'"
    return
    fi

    uid_1028_1=$!
    if [ $? -ne 0 ]; then
    SetResult $TET_UNRESOLVED "Command failed: 'uid_1028_1=$!'"
    return
    fi

    sleep 120 > 1028.2.tst &
    if [ $? -ne 0 ]; then
    SetResult $TET_UNRESOLVED "Command failed: 'sleep 120 > 1028.2.tst &'"
    return
    fi

    uid_1028_2=$!
    if [ $? -ne 0 ]; then
    SetResult $TET_UNRESOLVED "Command failed: 'uid_1028_2=$!'"
    return
    fi

    ExecWithPriv ALL_PRIV fuser `pwd` 1028.1.tst 1028.2.tst > 1028.out 2>&1
    if [ $? -ne 0 ]; then
    SetResult $TET_UNRESOLVED "Command failed: 'ExecWithPriv ALL_PRIV fuser \`
    pwd\` 1028.1.tst 1028.2.tst > 1028.out 2>&1'"
    return
    fi

    In both tests, the code creates two sleep processes and redirects to
    a file. The call to ExecWithPriv fails because the second file does
    not yet exist in the directory when fuser is called.

    By adding "ls -l >> /tmp/bar" just before the call to ExecWithPriv,
    it can be seen that the second file has not been created yet.

    If a "sleep 30" is added to the code before the call to ExecWithPriv,
    the test will pass.


    Test Output
    ***********************************************************************
    /tset/XOPEN.cmd/fuser/fuser.ex 1 Unresolved

    Test Information:
    Assertion #1028 (A):
    Command failed: 'ExecWithPriv ALL_PRIV fuser `pwd` 1028.1.
    <LC> tst 1028.2.tst > 1028.out 2>&1'

    ***********************************************************************
    /tset/XOPEN.cmd/fuser/fuser.ex 1 Unresolved

    Test Information:
    Assertion #1029 (A):
    Command failed: 'ExecWithPriv ALL_PRIV fuser -u `pwd` 1029.1
    <LC> .tst 1029.2.tst > 1029.out 2>&1'

    ***********************************************************************

    Review Information

    Review Type TSMA Review
    Start Date null
    Completed null
    Status Complete
    Review Recommendation No Resolution Given
    Review Response
    Since these two tests are the only tests of an important aspect of
    the fuser utility's behaviour (the interspersing of stdout and stderr),
    it would be preferable for a work-around to be used instead of
    granting a Test Suite Deficiency.

    The source code for the ExecWithPriv tool is user-modifiable, and if
    the following change is made it should cure the timing problem.

    In Src/ImplSpec/ExecWithPriv.c, insert the lines:

    if (strcmp(argv[0], "fuser") == 0)
    sleep(3);

    before the line:

    execvp(argv[0], argv);

    It is recommended that this request is refused, and the submitter is
    asked to implement the above work-around instead.

    Review Type SA Review
    Start Date null
    Completed null
    Status Complete
    Review Resolution Rejected (REJ)
    Review Conclusion
    This request is refused.

    Problem Reporting System Options:

     

    Back   


Contact the Certification Authority