PR0008.html

LSB Problem Report

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 Information

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