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

The Open Brand -- Problem Reporting and Interpretations System


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


Report 2509 Actions


    Problem Report Number 2509
    Submitter's Classification Test Suite problem
    State Resolved
    Resolution Test Suite Deficiency (TSD)
    Problem Resolution ID TSD.X.1298
    Raised 2006-02-08 23:02
    Updated 2006-02-09 21:16
    Published 2006-02-09 21:16
    Product Standard Internationalised System Calls and Libraries Extended V3 (UNIX 03)
    Certification Program The Open Brand certification program
    Test Suite VSX4 version 4.6.5
    Test Identification POSIX.os/ioprim/fcntl 11,12,15,16,23
    Specification Base Definitions Issue 6
    Linked Problem Reports 2457
    Problem Summary The test suite as coded expects that adjacent locks set by fcntl() are
    coalesced. One system does not coalesce locks. According to PASC
    Interpretation reference 1003.1-90 #50, either behavior conforms...
    Problem Text The test suite as coded expects that adjacent locks set by
    fcntl() are coalesced. One system does not coalesce locks.
    According to PASC Interpretation reference 1003.1-90 #50, either
    behavior conforms to POSIX.1. XPG4 adds no extended specifications
    on this point.

    This problem is reported in the VSX Release notes and only affects a
    single system. This problem would require considerable changes in the
    user test set-up in order for a correction to be effective.
    Test Output ************************************************************************
    /tset/POSIX.os/ioprim/fcntl/T.fcntl 11 Failed

    Test Description:
    For the XNFS specification:
    If the implementation supports file locking for files
    residing on
    a remote file system: On a call to fcntl(fildes, F_SETLK, arg)
    when l_type = F_RDLCK is specified a shared lock is created
    on the
    segment specified in arg.
    For the XSH specification:
    On a call to fcntl(fildes, F_SETLK, arg) when l_type =
    F_RDLCK is
    specified a shared lock is created on the segment specified in
    arg.
    Posix Ref: Component FCNTL Assertion 6.5.2.2-16(A)

    Test Strategy:
    OPEN pipes using opensync() - (genlib)
    OPEN new file using creat()
    WRITE 40 bytes to file
    CLOSE file and OPEN it again O_RDWR
    SEEK to offset 5 within the file
    CREATE process pair
    PARENT Process:
    SET lock {F_RDLCK, SEEK_SET, 5, 5, 0} using fcntl(F_SETLK)
    WRITE data to pipe using sendsync() - (genlib)
    CHILD Process:
    READ data from pipe using waitsync() - (genlib)
    VERIFY that fcntl(F_GETLK) with lock description {F_WRLCK,
    SEEK_SET,
    5, 20, 0} gives lock description {F_RDLCK, SEEK_SET, 5, 5,
    getppid()}
    WRITE data to pipe using sendsync() - (genlib)
    PARENT Process:
    READ data from pipe using waitsync() - (genlib)
    SET lock {F_RDLCK, SEEK_SET, 10, 5, 0} using fcntl(F_SETLK)
    WRITE data to pipe using sendsync() - (genlib)
    CHILD Process:
    READ data from pipe using waitsync() - (genlib)
    VERIFY that fcntl(F_GETLK) with lock description {F_WRLCK,
    SEEK_SET,
    5, 20, 0} gives lock description {F_RDLCK, SEEK_SET, 5, 10,
    getppid()}
    WRITE data to pipe using sendsync() - (genlib)
    PARENT Process:
    READ data from pipe using waitsync() - (genlib)
    SET lock {F_RDLCK, SEEK_SET, 10, 10, 0} using fcntl(F_SETLK)
    WRITE data to pipe using sendsync() - (genlib)
    CHILD Process:
    READ data from pipe using waitsync() - (genlib)
    VERIFY that fcntl(F_GETLK) with lock description {F_WRLCK,
    SEEK_SET,
    5, 20, 0} gives lock description {F_RDLCK, SEEK_SET, 5, 15,
    getppid()}
    WRITE data to pipe using sendsync() - (genlib)
    PARENT Process:
    READ data from pipe using waitsync() - (genlib)
    SET lock {F_RDLCK, SEEK_SET, 5, 20, 0} using fcntl(F_SETLK)
    WRITE data to pipe using sendsync() - (genlib)
    CHILD Process:
    READ data from pipe using waitsync() - (genlib)
    VERIFY that fcntl(F_GETLK) with lock description {F_WRLCK,
    SEEK_SET,
    5, 25, 0} gives lock description {F_RDLCK, SEEK_SET, 5, 20,
    getppid()}
    WRITE data to pipe using sendsync() - (genlib)
    PARENT Process:
    READ data from pipe using waitsync() - (genlib)
    SET lock {F_WRLCK, SEEK_SET, 20, 10, 0} using fcntl(F_SETLK)
    WRITE data to pipe using sendsync() - (genlib)
    CHILD Process:
    READ data from pipe using waitsync() - (genlib)
    VERIFY that fcntl(F_GETLK) with lock description {F_WRLCK,
    SEEK_SET,
    5, 25, 0} gives lock description {F_RDLCK, SEEK_SET, 5, 15,
    getppid()}
    VERIFY that fcntl(F_GETLK) with lock description {F_RDLCK,
    SEEK_SET,
    20, 25, 0} gives lock description {F_WRLCK, SEEK_SET, 20, 10,
    getppid()}

    Test Information:
    F_RDLCK not created/detected properly
    lock lengths differ: got 5 - expected 10
    F_RDLCK not created/detected properly
    lock lengths differ: got 5 - expected 15
    F_RDLCK not created/detected properly
    lock lengths differ: got 5 - expected 20
    F_RDLCK not created/detected properly
    lock lengths differ: got 5 - expected 15

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


    ************************************************************************
    /tset/POSIX.os/ioprim/fcntl/T.fcntl 12 Failed

    Test Description:
    For the XNFS specification:
    If the implementation supports file locking for files
    residing on
    a remote file system: On a call to fcntl(fildes, F_SETLK, arg)
    when l_type = F_WRLCK is specified an exclusive lock is
    created on
    the segment specified in arg.
    For the XSH specification:
    On a call to fcntl(fildes, F_SETLK, arg) when l_type =
    F_WRLCK is
    specified an exclusive lock is created on the segment
    specified in
    arg.
    Posix Ref: Component FCNTL Assertion 6.5.2.2-17(A)

    Test Strategy:
    OPEN pipes using opensync() - (genlib)
    OPEN new file using creat()
    WRITE 40 bytes to file
    CLOSE file and OPEN it again O_RDWR
    SEEK to offset 5 within the file
    CREATE process pair
    PARENT Process:
    SET lock {F_WRLCK, SEEK_SET, 5, 5, 0} using fcntl(F_SETLK)
    WRITE data to pipe using sendsync() - (genlib)
    CHILD Process:
    READ data from pipe using waitsync() - (genlib)
    VERIFY that fcntl(F_GETLK) with lock description {F_RDLCK,
    SEEK_SET,
    5, 20, 0} gives lock description {F_WRLCK, SEEK_SET, 5, 5,
    getppid()}
    WRITE data to pipe using sendsync() - (genlib)
    PARENT Process:
    READ data from pipe using waitsync() - (genlib)
    SET lock {F_WRLCK, SEEK_SET, 10, 5, 0} using fcntl(F_SETLK)
    WRITE data to pipe using sendsync() - (genlib)
    CHILD Process:
    READ data from pipe using waitsync() - (genlib)
    VERIFY that fcntl(F_GETLK) with lock description {F_RDLCK,
    SEEK_SET,
    5, 20, 0} gives lock description {F_WRLCK, SEEK_SET, 5, 10,
    getppid()}
    WRITE data to pipe using sendsync() - (genlib)
    PARENT Process:
    READ data from pipe using waitsync() - (genlib)
    SET lock {F_WRLCK, SEEK_SET, 10, 10, 0} using fcntl(F_SETLK)
    WRITE data to pipe using sendsync() - (genlib)
    CHILD Process:
    READ data from pipe using waitsync() - (genlib)
    VERIFY that fcntl(F_GETLK) with lock description {F_RDLCK,
    SEEK_SET,
    5, 20, 0} gives lock description {F_WRLCK, SEEK_SET, 5, 15,
    getppid()}
    WRITE data to pipe using sendsync() - (genlib)
    PARENT Process:
    READ data from pipe using waitsync() - (genlib)
    SET lock {F_WRLCK, SEEK_SET, 5, 20, 0} using fcntl(F_SETLK)

    WRITE data to pipe using sendsync() - (genlib)
    CHILD Process:
    READ data from pipe using waitsync() - (genlib)
    VERIFY that fcntl(F_GETLK) with lock description {F_RDLCK,
    SEEK_SET,
    5, 25, 0} gives lock description {F_WRLCK, SEEK_SET, 5, 20,
    getppid()}
    WRITE data to pipe using sendsync() - (genlib)
    PARENT Process:
    READ data from pipe using waitsync() - (genlib)
    SET lock {F_RDLCK, SEEK_SET, 20, 10, 0} using fcntl(F_SETLK)
    WRITE data to pipe using sendsync() - (genlib)
    CHILD Process:
    READ data from pipe using waitsync() - (genlib)
    VERIFY that fcntl(F_GETLK) with lock description {F_RDLCK,
    SEEK_SET,
    5, 25, 0} gives lock description {F_WRLCK, SEEK_SET, 5, 15,
    getppid()}
    VERIFY that fcntl(F_GETLK) with lock description {F_WRLCK,
    SEEK_SET,
    20, 25, 0} gives lock description {F_RDLCK, SEEK_SET, 20, 10,
    getppid()}

    Test Information:
    F_RDLCK not created/detected properly
    lock lengths differ: got 5 - expected 10
    F_RDLCK not created/detected properly
    lock lengths differ: got 5 - expected 15
    F_RDLCK not created/detected properly
    lock lengths differ: got 5 - expected 20
    F_RDLCK not created/detected properly
    lock lengths differ: got 5 - expected 15

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


    ************************************************************************
    /tset/POSIX.os/ioprim/fcntl/T.fcntl 15 Failed

    Test Description:
    For the XNFS specification:
    If the implementation supports file locking for files
    residing on
    a remote file system: On a call to fcntl(fildes, F_SETLKW, arg)
    when l_type = F_RDLCK is specified a shared lock is created
    on the
    segment specified in arg.
    For the XSH specification:
    On a call to fcntl(fildes, F_SETLKW, arg) when l_type =
    F_RDLCK is
    specified a shared lock is created on the segment specified in
    arg.
    Posix Ref: Component FCNTL Assertion 6.5.2.2-20(A)

    Test Strategy:
    OPEN pipes using opensync() - (genlib)
    OPEN new file using creat()
    WRITE 40 bytes to file
    CLOSE file and OPEN it again O_RDWR
    SEEK to offset 5 within the file
    CREATE process pair
    PARENT Process:
    SET lock {F_RDLCK, SEEK_SET, 5, 5, 0} using fcntl(F_SETLKW)
    WRITE data to pipe using sendsync() - (genlib)
    CHILD Process:
    READ data from pipe using waitsync() - (genlib)
    VERIFY that fcntl(F_GETLK) with lock description {F_WRLCK,
    SEEK_SET,
    5, 20, 0} gives lock description {F_RDLCK, SEEK_SET, 5, 5,
    getppid()}
    WRITE data to pipe using sendsync() - (genlib)
    PARENT Process:
    READ data from pipe using waitsync() - (genlib)
    SET lock {F_RDLCK, SEEK_SET, 10, 5, 0} using fcntl(F_SETLKW)
    WRITE data to pipe using sendsync() - (genlib)
    CHILD Process:
    READ data from pipe using waitsync() - (genlib)
    VERIFY that fcntl(F_GETLK) with lock description {F_WRLCK,
    SEEK_SET,
    5, 20, 0} gives lock description {F_RDLCK, SEEK_SET, 5, 10,
    getppid()}
    WRITE data to pipe using sendsync() - (genlib)
    PARENT Process:
    READ data from pipe using waitsync() - (genlib)
    SET lock {F_RDLCK, SEEK_SET, 10, 10, 0} using fcntl(F_SETLKW)
    WRITE data to pipe using sendsync() - (genlib)
    CHILD Process:
    READ data from pipe using waitsync() - (genlib)
    VERIFY that fcntl(F_GETLK) with lock description {F_WRLCK,
    SEEK_SET,
    5, 20, 0} gives lock description {F_RDLCK, SEEK_SET, 5, 15,
    getppid()}
    WRITE data to pipe using sendsync() - (genlib)
    PARENT Process:
    READ data from pipe using waitsync() - (genlib)
    SET lock {F_RDLCK, SEEK_SET, 5, 20, 0} using fcntl(F_SETLKW)
    WRITE data to pipe using sendsync() - (genlib)
    CHILD Process:
    READ data from pipe using waitsync() - (genlib)
    VERIFY that fcntl(F_GETLK) with lock description {F_WRLCK,
    SEEK_SET,
    5, 25, 0} gives lock description {F_RDLCK, SEEK_SET, 5, 20,
    getppid()}
    WRITE data to pipe using sendsync() - (genlib)
    PARENT Process:
    READ data from pipe using waitsync() - (genlib)
    SET lock {F_WRLCK, SEEK_SET, 20, 10, 0} using fcntl(F_SETLKW)
    WRITE data to pipe using sendsync() - (genlib)
    CHILD Process:
    READ data from pipe using waitsync() - (genlib)
    VERIFY that fcntl(F_GETLK) with lock description {F_WRLCK,
    SEEK_SET,
    5, 25, 0} gives lock description {F_RDLCK, SEEK_SET, 5, 15,
    getppid()}
    VERIFY that fcntl(F_GETLK) with lock description {F_RDLCK,
    SEEK_SET,
    20, 25, 0} gives lock description {F_WRLCK, SEEK_SET, 20, 10,
    getppid()}

    Test Information:
    F_RDLCK not created/detected properly
    lock lengths differ: got 5 - expected 10
    F_RDLCK not created/detected properly
    lock lengths differ: got 5 - expected 15
    F_RDLCK not created/detected properly
    lock lengths differ: got 5 - expected 20
    F_RDLCK not created/detected properly
    lock lengths differ: got 5 - expected 15

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


    ************************************************************************
    /tset/POSIX.os/ioprim/fcntl/T.fcntl 16 Failed

    Test Description:
    For the XNFS specification:
    If the implementation supports file locking for files
    residing on
    a remote file system: On a call to fcntl(fildes, F_SETLKW, arg)
    when l_type = F_WRLCK is specified an exclusive lock is
    created on
    the segment specified in arg.
    For the XSH specification:
    On a call to fcntl(fildes, F_SETLKW, arg) when l_type =
    F_WRLCK is
    specified an exclusive lock is created on the segment
    specified in
    arg.
    Posix Ref: Component FCNTL Assertion 6.5.2.2-21(A)

    Test Strategy:
    OPEN pipes using opensync() - (genlib)
    OPEN new file using creat()
    WRITE 40 bytes to file
    CLOSE file and OPEN it again O_RDWR
    SEEK to offset 5 within the file
    CREATE process pair
    PARENT Process:
    SET lock {F_WRLCK, SEEK_SET, 5, 5, 0} using fcntl(F_SETLKW)
    WRITE data to pipe using sendsync() - (genlib)
    CHILD Process:
    READ data from pipe using waitsync() - (genlib)
    VERIFY that fcntl(F_GETLK) with lock description {F_RDLCK,
    SEEK_SET,
    5, 20, 0} gives lock description {F_WRLCK, SEEK_SET, 5, 5,
    getppid()}
    WRITE data to pipe using sendsync() - (genlib)
    PARENT Process:
    READ data from pipe using waitsync() - (genlib)
    SET lock {F_WRLCK, SEEK_SET, 10, 5, 0} using fcntl(F_SETLKW)
    WRITE data to pipe using sendsync() - (genlib)
    CHILD Process:
    READ data from pipe using waitsync() - (genlib)
    VERIFY that fcntl(F_GETLK) with lock description {F_RDLCK,
    SEEK_SET,
    5, 20, 0} gives lock description {F_WRLCK, SEEK_SET, 5, 10,
    getppid()}
    WRITE data to pipe using sendsync() - (genlib)
    PARENT Process:
    READ data from pipe using waitsync() - (genlib)
    SET lock {F_WRLCK, SEEK_SET, 10, 10, 0} using fcntl(F_SETLKW)
    WRITE data to pipe using sendsync() - (genlib)
    CHILD Process:
    READ data from pipe using waitsync() - (genlib)
    VERIFY that fcntl(F_GETLK) with lock description {F_RDLCK,
    SEEK_SET,
    5, 20, 0} gives lock description {F_WRLCK, SEEK_SET, 5, 15,
    getppid()}
    WRITE data to pipe using sendsync() - (genlib)
    PARENT Process:
    READ data from pipe using waitsync() - (genlib)
    SET lock {F_WRLCK, SEEK_SET, 5, 20, 0} using fcntl(F_SETLKW)
    WRITE data to pipe using sendsync() - (genlib)
    CHILD Process:
    READ data from pipe using waitsync() - (genlib)
    VERIFY that fcntl(F_GETLK) with lock description {F_RDLCK,
    SEEK_SET,
    5, 25, 0} gives lock description {F_WRLCK, SEEK_SET, 5, 20,
    getppid()}
    WRITE data to pipe using sendsync() - (genlib)
    PARENT Process:
    READ data from pipe using waitsync() - (genlib)
    SET lock {F_RDLCK, SEEK_SET, 20, 10, 0} using fcntl(F_SETLKW)
    WRITE data to pipe using sendsync() - (genlib)
    CHILD Process:
    READ data from pipe using waitsync() - (genlib)
    VERIFY that fcntl(F_GETLK) with lock description {F_RDLCK,
    SEEK_SET,
    5, 25, 0} gives lock description {F_WRLCK, SEEK_SET, 5, 15,
    getppid()}
    VERIFY that fcntl(F_GETLK) with lock description {F_WRLCK,
    SEEK_SET,
    20, 25, 0} gives lock description {F_RDLCK, SEEK_SET, 20, 10,
    getppid()}

    Test Information:
    F_RDLCK not created/detected properly
    lock lengths differ: got 5 - expected 10
    F_RDLCK not created/detected properly
    lock lengths differ: got 5 - expected 15
    F_RDLCK not created/detected properly
    lock lengths differ: got 5 - expected 20
    F_RDLCK not created/detected properly
    lock lengths differ: got 5 - expected 15

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


    ************************************************************************
    /tset/POSIX.os/ioprim/fcntl/T.fcntl 23 Failed

    Test Description:
    For the XNFS specification:
    If the implementation supports file locking for files
    residing on
    a remote file system: For any lock type the segment
    specification
    can be set to extend to end of file by setting l_len to zero.
    For the XSH specification:
    For any lock type the segment specification can be set to extend
    to end of file by setting l_len to zero.
    Posix Ref: Component FCNTL Assertion 6.5.2.2-29(A)

    Test Strategy:
    OPEN pipes using opensync() - (genlib)
    OPEN new file using creat()
    WRITE 40 bytes to file
    CLOSE file and OPEN it again O_RDWR
    SEEK to offset 5 within the file
    CREATE process pair
    PARENT Process:
    SET lock {F_WRLCK, SEEK_SET, 10, 0, 0} using fcntl(F_SETLK)
    WRITE data to pipe using sendsync() - (genlib)
    CHILD Process:
    READ data from pipe using waitsync() - (genlib)
    VERIFY that fcntl(F_GETLK) with lock description {F_RDLCK,
    SEEK_SET,
    20, 5, 0} gives lock description {F_WRLCK, SEEK_SET, 10, 0,
    getppid()}
    WRITE data to pipe using sendsync() - (genlib)
    PARENT Process:
    READ data from pipe using waitsync() - (genlib)
    SET lock {F_WRLCK, SEEK_SET, 0, 0, 0} using fcntl(F_SETLK)
    WRITE data to pipe using sendsync() - (genlib)
    CHILD Process:
    READ data from pipe using waitsync() - (genlib)
    VERIFY that fcntl(F_GETLK) with lock description {F_RDLCK,
    SEEK_SET,
    20, 5, 0} gives lock description {F_WRLCK, SEEK_SET, 0, 0,
    getppid()}
    CREATE process pair
    PARENT Process:
    SET lock {F_RDLCK, SEEK_SET, 10, 0, 0} using fcntl(F_SETLK)
    WRITE data to pipe using sendsync() - (genlib)
    CHILD Process:
    READ data from pipe using waitsync() - (genlib)
    VERIFY that fcntl(F_GETLK) with lock description {F_WRLCK,
    SEEK_SET,
    20, 5, 0} gives lock description {F_RDLCK, SEEK_SET, 10, 0,
    getppid()}
    WRITE data to pipe using sendsync() - (genlib)
    PARENT Process:
    READ data from pipe using waitsync() - (genlib)
    SET lock {F_RDLCK, SEEK_SET, 0, 0, 0} using fcntl(F_SETLK)
    WRITE data to pipe using sendsync() - (genlib)
    CHILD Process:
    READ data from pipe using waitsync() - (genlib)
    VERIFY that fcntl(F_GETLK) with lock description {F_WRLCK,
    SEEK_SET,
    20, 5, 0} gives lock description {F_RDLCK, SEEK_SET, 0, 0,
    getppid()}

    Test Information:
    the whole file was not locked when l_len = l_start = 0
    lock start points differ: got 10 - expected 0

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

    Review Information

    Review Type TSMA Review
    Start Date 2006-02-08 23:02
    Last Updated 2006-02-08 23:03
    Completed 2006-02-08 23:03
    Status Complete
    Review Recommendation Test Suite Deficiency (TSD)
    Review Response This is the usual reissue of a TSD for this known problem on each VSX4
    release.

    Review Type SA Review
    Start Date 2006-02-08 23:03
    Last Updated 2006-02-09 00:48
    Completed 2006-02-09 00:48
    Status Complete
    Review Resolution Test Suite Deficiency (TSD)
    Review Conclusion This PR represents an agreed TSD

    Problem Reporting System Options:

     

    Back   


Contact the Certification Authority