Problem Report Number | 0008 (REJ.0003) |
---|---|
Submitter's Classification | Specification Problem (INT) |
State | Resolved |
Resolution | Rejected (REJ) |
Raised | 2002-07-30 15:54 |
Updated | 2002-08-29 15:04 |
Published | 2002-08-29 15:04 |
Certification Program | Linux Standard Base Conformance Release 1.2 |
Test Suite | lsb-runtime IA32 version 1.2.1-1 |
Test Identification | /tset/POSIX.os/ioprim/fcntl/T.fcntl |
Specification | Linux Standard Base Specification 1.2 |
Location in Spec | not certain |
Problem Summary | Are 64-bit systems allowed to set O_LARGEFILE by default? |
Problem Text | fcntl GETFL/SETFL failures on Itanium led to this research. Those failure are appended to the test suite information of this PR. The Linux kernel, at least as of 2.4.18, generically sets O_LARGEFILE (0100000) on files as they are opened if it's not a 32-bit machine (see fs/open.c in sys_open). To my reading it's not clear whether the combination of SUSv2 and LFS consistently allow this behavior, and it is not explicitly called out by the LSB. This behavior may affect "standard" coding practice, which is what is used by the test suite - for example: Test Description: A call to fcntl(fildes, F_SETFL, O_NONBLOCK) shall set the file status flag O_NONBLOCK for fildes. Posix Ref: Component FCNTL Assertion 6.5.2.2-10(A) Test Strategy: OPEN file with (O_CREAT | O_RDWR) SET file status flags to O_NONBLOCK using fcntl(F_SETFL) VERIFY fcntl(F_GETFL) returns (O_RDWR | O_NONBLOCK) CLOSE file and OPEN it again (O_RDWR | O_NONBLOCK | O_APPEND) SET file status flags to O_NONBLOCK using fcntl(F_SETFL) VERIFY fcntl(F_GETFL) returns (O_RDWR | O_NONBLOCK) Since the flags obtained from fcntl F_GETFL always contain O_LARGEFILE (and is not affected by a user setting), the VERIFY test as written will always fail. Requesting a ruling on whether O_LARGEFILE is allowed to be set in this manner; note that an affirmative answer would imply a test waiver and/or TSD to correct. |
Test Output | 10|341 /tset/POSIX.os/ioprim/fcntl/T.fcntl 17:36:30|TC Start, scenario ref 344-0 ... 400|341 6 1 17:36:30|IC Start 200|341 6 17:36:30|TP Start 520|341 6 00008997 1 1|fcntl(F_SETFL) did not set flags properly, fcntl(F_GETFL) returned 0104002, expected 04002 520|341 6 00008997 1 2|fcntl(F_SETFL) did not set flags properly, fcntl(F_GETFL) returned 0104002, expected 04002 220|341 6 1 17:36:30|FAIL 410|341 6 1 17:36:30|IC End ... 400|341 7 1 17:36:30|IC Start 200|341 7 17:36:30|TP Start 520|341 7 00008997 1 1|fcntl(F_SETFL) did not set flags properly, fcntl(F_GETFL) returned 0102002, expected 02002 520|341 7 00008997 1 2|fcntl(F_SETFL) did not set flags properly, fcntl(F_GETFL) returned 0102002, expected 02002 220|341 7 1 17:36:30|FAIL 410|341 7 1 17:36:30|IC End ... 400|341 8 1 17:36:30|IC Start 200|341 8 17:36:30|TP Start 520|341 8 00008997 1 1|fcntl(F_SETFL) did not set flags properly, fcntl(F_GETFL) returned 0106002, expected 06002 520|341 8 00008997 1 2|fcntl(F_SETFL) did not set flags properly, fcntl(F_GETFL) returned 0100002, expected 02 220|341 8 1 17:36:30|FAIL 410|341 8 1 17:36:30|IC End |
Review Type | SA Review |
---|---|
Start Date | 2002-07-30 15:54 |
Last Updated | 2002-08-02 17:42 |
Completed | 2002-08-02 17:42 |
Status | Complete |
Review Resolution | No Resolution Given |
Review Conclusion | This is not an issue for the IA32 platform, however it is an issue that needs to de discussed/resolved for the IA64 (and possibly other) platform(s). |
Review Type | SA Detailed Review |
---|---|
Start Date | 2002-08-08 05:41 |
Last Updated | 2002-08-28 21:11 |
Completed | 2002-08-28 21:11 |
Status | Complete |
Review Recommendation | Rejected (REJ) |
Review Response | This issue is now being tracked in a SF bug report as it applies to a platform not yet int eh certification process. |
Copyright 2005, The Free Standards Group, All Rights Reserved