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

The Open Brand -- Problem Reporting and Interpretations System


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


Report 1295 Actions


    Problem Report Number 1295
    Submitter's Classification Test Suite problem
    State Resolved
    Resolution Test Suite Deficiency (TSD)
    Problem Resolution ID TSD.X.0577
    Raised 1970-01-01 08:00
    Updated 2003-03-13 08:00
    Published 1998-07-13 08:00
    Product Standard Internationalised System Calls and Libraries Extended V2 (UNIX 98)
    Certification Program The Open Brand certification program
    Test Suite VSU version 5.0.2
    Test Identification CAPIbase/lockf 44
    Problem Summary TSD4U.00241 This test is not freeing the locked section in the same process that locked it
    Problem Text
    There are multiple problems with this test, two of which have been
    addressed by TSD4U.00225 and TSD4U.00222. On systems where this
    test is able to continue despite the problems noted in these TSDs,
    we see the additional problem noted in the test results above
    whereby we get the failure:

    ERROR: In LFS lock checking program: Locked section not freed

    The test is in error. The test creates a lock with one process and
    then forks and execs another process to do the unlocking, the exact
    sequence referencing the source files being:

    - flockf44.c forks and execs t44lrgoff.c.
    - t44lrgoff.c opens a large off_t file, seeks past the 32-bit
    boundary and writes a few bytes. It then lseeks backwards to
    before the 32-bit boundary and sets a lock from there to the
    end of the file.
    - t44lrgoff.c then forks and execs t44smloff.c (small off_t)
    passing the file descriptor of the open file. t44smloff.c
    tries to remove the lock.
    - t44smloff.c then forks and execs t44check.c to check if the
    lock as been removed. t44check.c reports the lock has not
    been removed.

    A process cannot remove another process's locks. If this test is
    corrected to exec in place and use the same process, it works.
    As per the XSH5 description for the lockf() T_ULOCK request (page
    473, last paragraph), a "F_ULOCK requests may release (wholly or in
    part) one or more locked sections controlled by the process". The test
    is trying to use F_ULOCK to unlock a section locked by a parent process.
    Since the parent process created the lock, the parent controls that
    section and the child cannot unlock the lock created by the parent.
    Test Output
    TEST CASE: lockf

    TEST PURPOSE #44
    If the implementation allows creation of a file
    description with an offset maximum less than the
    largest size it supports for an off_t:
    A call to int lockf(int fildes, int function, off_t
    size) when function is F_UNLOCK, size is non-zero, the
    offset of the last byte of the requested section is
    the maximum value for an object of type off_t, and the
    process has an existing lock in which size is 0 and
    which includes the last byte of the requested section
    shall be equivalent to a request to unlock from the
    start of the requested sections with a size equal to 0.
    PREP: Check for existence of programming environments
    PREP: Obtain off_t size in XBS5_ILP32_OFF32 environment
    PREP: Obtain off_t size in XBS5_ILP32_OFFBIG environment
    PREP: Obtain off_t size in XBS5_ILP64_OFF64 environment
    PREP: Obtain off_t size in XBS5_LPBIG_OFFBIG environment
    PREP: Open communication pipe for child
    PREP: Fork a child
    PREP: Wait for child
    INFO: Read child's test result
    ERROR: In LFS lock checking program: Locked section not freed
    PREP: Open communication pipe for child
    PREP: Fork a child
    PREP: Connect child's pipe to stdout
    PREP: Execute a program compiled in XBS5_ILP32_OFFBIG (64-bit off_t) environme
    nt that:
    opens a regular file for writing,
    locks a section that includes the byte at the offset
    which is the maximum value that can be reprsented in
    32-bit off_t object
    exec a program compiled in XBS5_ILP64_OFF64 (32-bit off_t) environment,
    passing
    it the open file descriptor
    TEST: lockf with F_UNLOCK unlocks the initial section
    PREP: Wait for child
    INFO: Read child's test result
    ERROR: In LFS lock checking program: Locked section not freed
    PREP: Open communication pipe for child
    PREP: Fork a child
    PREP: Connect child's pipe to stdout
    PREP: Execute a program compiled in XBS5_ILP32_OFFBIG (64-bit off_t) environme
    nt that:
    locks a section that includes the byte at the offset
    which is the maximum value that can be reprsented in
    32-bit off_t object
    exec a program compiled in XBS5_LPBIG_OFFBIG (32-bit off_t) environment,
    passing
    it the open file descriptor
    TEST: lockf with F_UNLOCK unlocks the initial section
    PREP: Wait for child
    INFO: Read child's test result
    ERROR: In LFS lock checking program: Locked section not freed
    PREP: Connect child's pipe to stdout
    PREP: Execute a program compiled in XBS5_ILP32_OFFBIG (64-bit off_t) environme
    nt that:
    opens a regular file for writing,
    locks a section that includes the byte at the offset
    which is the maximum value that can be reprsented in
    32-bit off_t object
    exec a program compiled in XBS5_ILP32_OFF32 (32-bit off_t) environment,
    passing
    it the open file descriptor
    TEST: lockf with F_UNLOCK unlocks the initial section
    44 FAIL

    Review Information

    Review Type TSMA Review
    Start Date null
    Completed null
    Status Complete
    Review Recommendation No Resolution Given
    Review Response
    We agree this is a test suite deficiency in the test suite versions listed.

    Review Type SA Review
    Start Date null
    Completed null
    Status Complete
    Review Resolution Test Suite Deficiency (TSD)
    Review Conclusion
    This is an agreed Test Suite Deficiency.

    Problem Reporting System Options:

     

    Back   


Contact the Certification Authority