|
Home About Us A-Z Index Search * Contact Us Register Login Press ShopThe Open Brand -- Problem Reporting and Interpretations System |
Problem Report 2457 Details
Show help | Quick Search | Submit a Test Suite Support Request | Click here to view your privileges
This page provides all information on Problem Report 2457.
Report 2457 Actions
Problem Report Number 2457 Submitter's Classification Test Suite problem State Resolved Resolution Test Suite Deficiency (TSD) Problem Resolution ID TSD.X.1280 Raised 2005-04-20 22:29 Updated 2005-04-22 15:03 Published 2005-04-22 15:03 Product Standard Internationalised System Calls and Libraries Extended V3 (UNIX 03) Certification Program The Open Brand certification program Test Suite VSX4 version 4.6.4 Test Identification POSIX.os/ioprim/fcntl 11,12,15,16,23 Specification Base Definitions Issue 6 Linked Problem Reports 2427 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 2005-04-20 22:29 Last Updated 2005-04-20 23:30 Completed 2005-04-20 23:30 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 2005-04-20 22:30 Last Updated 2005-04-21 01:37 Completed 2005-04-21 01:37 Status Complete Review Resolution Test Suite Deficiency (TSD) Review Conclusion This PR represents an approved PR.
Problem Reporting System Options:
- View Report 2457
- List All PRs
- Search Reports
- Email the System Administrator
- View the The Open Brand Interpretations Database User Manual
Contact the Certification Authority