|
Home About Us A-Z Index Search * Contact Us Register Login Press ShopThe Open Brand -- Problem Reporting and Interpretations System |
Problem Report 2529 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 2529.
Report 2529 Actions
Problem Report Number 2529 Submitter's Classification Test Suite problem State Resolved Resolution Permanent Interpretation (PIN) Problem Resolution ID PIN.X.0280 Raised 2007-02-15 10:15 Updated 2007-02-16 03:46 Published 2007-02-16 03:46 Product Standard Internationalised System Calls and Libraries Extended V3 (UNIX 03) Certification Program The Open Brand certification program Test Suite VSX5 version 5.2.9 Test Identification LFS.os/ioprim/fcntl/T.fcntl 4,5 Specification Base Definitions Issue 6 Problem Summary Large file tests (LFS.os) are testing for large file behavior on a file
system that does not support large files.Problem Text Prior to the incorporation of the changes from the Large File Summit
(LFS) into the Single UNIX Specification, the
file-system-internal-objects that stored the size and position of a file
were the same size as the application-defined-objects that stored the
same information. With the introduction of the work of the LFS, the
file system off_t could be larger than the application off_t.
Prior to the incorporation of the LFS, the functions fcntl, lseek and
lockf could fail because they had an offset argument that could be added
to the file position, and the resulting sum could be an invalid
file-system-offset. Each of the three functions returned EINVAL when
the sum of the function argument plus the position of the file
descriptor resulted in an invalid value for the file system.
Subsequent to the incorporation of the LFS, a new failure mode existed
that the LFS decided must be distinguishable from the EINVAL condition.
This mode occurs when a file operation results in an offset that could
be represented in the file system off_t, but could not be represented in
the application off_t. The error that is returned when this condition
happens is EOVERFLOW.
If the functions fcntl, lockf or lseek are executed on a file system
that supports large files, they should fail with EOVERFLOW whenever the
file position plus the offset argument is larger than the application
off_t, but not larger than the file system off_t.
If the functions fcntl, lockf or lseek are executed on a file system
that does not support large files, they should fail with EINVAL whenever
the file position plus the offset argument is larger than the file
system off_t.
A UNIX branding configuration which does not include a file system that
supports large files should not be required to return the EOVERFLOW
condition. If this condition is tested, the test should allow EINVAL
from file systems that do not support large files, and should expect
EOVERFLOW from file systems that do support large files. For example:
lseek assertion 2
lseek() set errno to EINVAL instead of EOVERFLOW.
This is allowed provided the system does not support
a compilation environment with a larger off_t.
The same allowance should be made for fcntl() assertions 4 and 5.Test Output ************************************************************************
/tset/LFS.os/ioprim/fcntl/T.fcntl 4 Failed
Test Description:
When cmd is F_GETLK, FSETLK or F_SETLKW and l_len is zero and the
smallest offset in the requested segment cannot be represented in an
entity of type off_t, then a call to fcntl() returns -1 and sets errno
to EOVERFLOW.
Test Strategy:
IF the test mode is a UNIX mode:
OBTAIN limit-setting privilege, using setprv(PRV_LIMITS)
SET the hard and soft file size limits to RLIM_INFINITY, using
setrlimit()
OPEN a new file in the current directory, using creat()
REPEAT for F_GETLK, F_SETLK and F_SETLKW:
SEEK to offset 1, using lseek()
CALL fcntl() with l_type=F_WRLCK, l_whence=SEEK_CUR,
l_start=LFS_NORMAL_OFFMAX, l_len=0
VERIFY that fcntl() returned -1 with errno set to EOVERFLOW
Test Information:
fcntl(F_GETLK) set errno to 22 (EINVAL), expected 72 (EOVERFLOW)
fcntl(F_SETLK) set errno to 22 (EINVAL), expected 72 (EOVERFLOW)
fcntl(F_SETLKW) set errno to 22 (EINVAL), expected 72 (EOVERFLOW)
************************************************************************
************************************************************************
/tset/LFS.os/ioprim/fcntl/T.fcntl 5 Failed
Test Description:
When cmd is F_GETLK, FSETLK or F_SETLKW and l_len is non-zero and the
largest offset of any byte in the requested segment cannot be
represented in an entity of type off_t, then a call to fcntl() returns
-1 and sets errno to EOVERFLOW.
Test Strategy:
IF the test mode is a UNIX mode:
OBTAIN limit-setting privilege, using setprv(PRV_LIMITS)
SET the hard and soft file size limits to RLIM_INFINITY, using
setrlimit()
OPEN a new file in the current directory, using creat()
REPEAT for F_GETLK, F_SETLK and F_SETLKW:
CALL fcntl() with l_type=F_WRLCK, l_whence=SEEK_SET,
l_start=LFS_NORMAL_OFFMAX, l_len=2
VERIFY that fcntl() returned -1 with errno set to EOVERFLOW
Test Information:
fcntl(F_GETLK) set errno to 22 (EINVAL), expected 72 (EOVERFLOW)
fcntl(F_SETLK) set errno to 22 (EINVAL), expected 72 (EOVERFLOW)
fcntl(F_SETLKW) set errno to 22 (EINVAL), expected 72 (EOVERFLOW)
************************************************************************Review Information
Review Type TSMA Review Start Date 2007-02-15 10:15 Last Updated 2007-02-15 19:47 Completed 2007-02-15 19:47 Status Complete Review Recommendation Permanent Interpretation (PIN) Review Response A UNIX98 PIN was previously granted for this issue: PIN.X.0230. The
wording in the standard has not changed between SUSv2 and SUSv3 and
therefore the grey area still exists and a UNIX03 PIN should be granted.
Note that although PIN.X.0230 only covered test 4, and this new request
is for tests 4 and 5, both tests are failing for the same reason and are
affected by the same grey area.
Review Type SA Review Start Date 2007-02-15 19:47 Last Updated 2007-02-16 03:22 Completed 2007-02-16 03:22 Status Complete Review Resolution Permanent Interpretation (PIN) Review Conclusion This PR represents and agreed Permanent Interpretation
Problem Reporting System Options:
- View Report 2529
- List All PRs
- Search Reports
- Email the System Administrator
- View the The Open Brand Interpretations Database User Manual
Contact the Certification Authority