Report 1669 Actions
Problem Report Number |
1669 |
Submitter's Classification |
Test Suite problem |
State |
Resolved |
Resolution |
Rejected (REJ) |
Problem Resolution ID |
REJ.X.0473 |
Raised |
2000-08-27 08:00 |
Updated |
2003-03-13 08:00 |
Published |
null |
Product Standard |
Internationalised System Calls and Libraries Extended V2 (UNIX 98) |
Certification Program |
The Open Brand certification program |
Test Suite |
VSU version 5.0.4 |
Test Identification |
CAPIbase/writev 76,77 |
Problem Summary |
PG4U.00176 The test failures in this IR are already covered by TIN4U.00003. |
Problem Text |
Note, req.4.U.00555 has been submitted for VSU 5.1.1 as a 14 day interpretation.
in PG4U.00175 the consultants state
The question is whether it is valid for the test suite to assume that regular files created in a particular directory (e.g. the one specified by VSU_LFS_DIR) will either always have a maximum size that is at least 2^32 bytes or always have a maximum size that is less than 2^32 bytes. The answer can be determined from the required behaviour of a call to pathconf(VSU_LFS_DIR, _PC_FILESIZEBITS). Specifically, the note in the description of pathconf:
"If path or fildes refers to a directory, the value returned applies to filenames within the directory."
and the definition of FILESIZEBITS in <limits.h>:
"Minimum number of bits needed to represent, as a signed integer value, the maximum size of a regular file allowed in the specified directory"
clearly show that on a UNIX98-compliant system, the minimum number of bits needed to represent the maximum size of regular files in one particular directory must be the same for all of the files in that directory. Therefore the assumption by the test suite concerning VSU_LFS_DIR is valid, and the writev test failures are due to a non-compliance of the system.
A regular file on a LFS enabled filesystem will be a file with a 64 bit off_t. And our FILESIZEBITS returns the correct value for this case. However programs compiled in IPL32_OFF32 cannot generate or correctly access LFS files. Table 3-4 (Page 165) of the XCU clearly shows that an program compiled in IPL32_OFF32 has an off_t of 32 bits. And that a 64 bit off_t is reguired to create/access/modify large files.
The XSH open() syscall requirements(page 572) states the following:
"The largest value that can be represented correctly in an object of type off_t will be established as the offset maximum in the open file description."
This clearly states that the maximum file size is dependent on the off_t size.
In addition, the XSH exec() requirements states the following:
"For those file descriptors that remain open, all attributes of the open file description, including file locks remain unchanged."
These two statement mean that an IPL_OFF32 program can only open a file with maximum size of 2^32 and passing this file descriptor to a OFFBIG or OFF64 program will not change this maximum file size.
|
Test Output |
TEST CASE: writev
TEST PURPOSE #76 If the implementation allows creation of a file description with an offset maximum less than the largest size it supports for an off_t: EFBIG in errno and return -1 on a call to ssize_t writev(int fildes, const struct iovec *iov, int iovcnt) when the file is a regular file, nbyte is greater than zero, and the starting position is equal to the offset maximum established in the open file description associated with fildes. 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_LP64_OFF64 environment PREP: Obtain off_t size in XBS5_LPBIG_OFFBIG environment TEST: Execute a program compiled in XBS5_ILP32_OFF32(32-bit off_t) environment that: opens a regular file execs a program compiled in XBS5_ILP32_OFFBIG(64-bit off_t) environment, passing it the open file descriptor this program: sets the offset equal to the value that can be represented in a 32-bit off_t, verifies writev returns -1 and sets errno to EFBIG ERROR: In 32-bit program: ERROR: Child terminated due to signal 25 TEST: Execute a program compiled in XBS5_ILP32_OFF32(32-bit off_t) environment that: opens a regular file execs a program compiled in XBS5_LP64_OFF64(64-bit off_t) environment, passing it the open file descriptor this program: sets the offset equal to the value that can be represented in a 32-bit off_t, verifies writev returns -1 and sets errno to EFBIG ERROR: In 32-bit program: ERROR: Child terminated due to signal 25 TEST: Execute a program compiled in XBS5_ILP32_OFF32(32-bit off_t) environment that: opens a regular file execs a program compiled in XBS5_LPBIG_OFFBIG(64-bit off_t) environment, passing it the open file descriptor this program: sets the offset equal to the value that can be represented in a 32-bit off_t, verifies writev returns -1 and sets errno to EFBIG ERROR: In 32-bit program: ERROR: Child terminated due to signal 25 76 UNRESOLVED
TEST PURPOSE #77 If the implementation allows creation of a file description with an offset maximum less than the largest size it supports for an off_t: EFBIG in errno and return -1 on a call to ssize_t writev(int fildes, const struct iovec *iov, int iovcnt) when the file is a regular file, nbyte is greater than zero, and the starting position is greater than the offset maximum established in the open file description associated with fildes. 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_LP64_OFF64 environment PREP: Obtain off_t size in XBS5_LPBIG_OFFBIG environment TEST: Execute a program compiled in XBS5_ILP32_OFF32(32-bit off_t) environment that: opens a regular file execs a program compiled in XBS5_ILP32_OFFBIG(64-bit off_t) environment, passing it the open file descriptor this program: sets the offset to a value greater than what can be represented in 32-bit off_t, verifies writev returns -1 and sets errno to EFBIG ERROR: In 32-bit program: ERROR: Child terminated due to signal 25 TEST: Execute a program compiled in XBS5_ILP32_OFF32(32-bit off_t) environment that: opens a regular file execs a program compiled in XBS5_LP64_OFF64(64-bit off_t) environment, passing it the open file descriptor this program: sets the offset to a value greater than what can be represented in 32-bit off_t, verifies writev returns -1 and sets errno to EFBIG ERROR: In 32-bit program: ERROR: Child terminated due to signal 25 TEST: Execute a program compiled in XBS5_ILP32_OFF32(32-bit off_t) environment that: opens a regular file execs a program compiled in XBS5_LPBIG_OFFBIG(64-bit off_t) environment, passing it the open file descriptor this program: sets the offset to a value greater than what can be represented in 32-bit off_t, verifies writev returns -1 and sets errno to EFBIG ERROR: In 32-bit program: ERROR: Child terminated due to signal 25 77 UNRESOLVED
|
Review Information
Review Type |
TSMA Review |
Start Date |
null |
Completed |
null |
Status |
Complete |
Review Recommendation |
No Resolution Given |
Review Response |
Except for the test suite version, this request is identical to req.4.U.00557, which has now been issued as TIN4U.00003.
Since TINs are not specific to the test suite version, TIN4U.00003 also covers the test failures in this request, and it is therefore recommended that the request is refused.
|
Review Type |
TSMA Review |
Start Date |
null |
Completed |
null |
Status |
Complete |
Review Recommendation |
No Resolution Given |
Review Response |
Except for the test suite version, this request is identical to req.4.U.00557, which has now been issued as TIN4U.00003.
Since TINs are not specific to the test suite version, TIN4U.00003 also covers the test failures in this request, and it is therefore recommended that the request is refused.
|
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:
|