Report 1617 Actions
Problem Report Number |
1617 |
Submitter's Classification |
Specification problem |
State |
Resolved |
Resolution |
Permanent Interpretation (PIN) |
Problem Resolution ID |
PIN.X.0174 |
Raised |
1996-08-14 08:00 |
Updated |
2003-03-13 08:00 |
Published |
1996-11-17 08:00 |
Product Standard |
Internationalised System Calls and Libraries Extended (UNIX 95) |
Certification Program |
The Open Brand certification program |
Test Suite |
VSU version 4.1.0 |
Test Identification |
CAPI.os/files/rename 4 5 |
Specification |
System Interfaces and Libraries Issue 4 Version 2 |
Location in Spec |
See Problem Text |
Problem Summary |
PIN4U.00040 This request seeks a permanent interpretation for implementations that follow historical practice |
Problem Text |
The problem described in this request is similar to that previously raised against unlink() and the EBUSY errno in the case of a named STREAM. An update to the unlink() EBUSY description should be accompanied by a similar update to the rename() EBUSY description.
Although these tests are testing to the XSH4v2 specification as currently worded, we believe the specification is in error in making the following statement:
The rename() function will fail if:
[EBUSY] The directory named by old or new is currently in use by the system or another process, and the implementation considers this an error, or the file named by old or new is a named STREAM.
We believe the intent is that rename() return EBUSY if the file named by old or new is a named STREAM and the implementation considers this an error.
By not permitting implementations to support rename() on a named STREAM, applications wishing to use a fifo or other named STREAM under a different name must call open(), fdetach(), unlink(), creat(), fattach(), and close() in order to get the same results as a single call to rename().
Allowing rename() to support the renaming of a named STREAM is consistent with historical SVR4 implementations.
We believe the specification (and test suite) should allow both behaviors and as such the description for EBUSY should be:
[EBUSY] The directory named by old or new is currently in use by the system or another process, or the path named by old and the implementation considers this to be an error, or new is a named STREAM and the implementation considers this to be an error.
|
Test Output |
TEST CASE: rename
TEST PURPOSE #4 EBUSY in errno and return -1 on a call to int rename(const char *old, const char *new) when the file named by old is a named STREAM. PREP: Create a regular file PREP: Get configured VSU_STREAM_DEV device name PREP: Open a streams device and associate the pathname of the regular file with it TEST: rename(old, new) when 'old' refers to a named STREAM returns -1 ERROR: The call to rename() did not return the correct value Expected: -1 Received: 0 4 FAIL
TEST PURPOSE #5 EBUSY or EXDEV in errno and return -1 on a call to int rename(const char *old, const char *new) when the file named by new is a named STREAM. PREP: Create a regular file to be renamed PREP: Create a second regular file PREP: Get configured VSU_STREAM_DEV device name PREP: Open a streams device and associate the pathname of the second regular file with it TEST: rename(old, new) when 'new' refers to a named STREAM returns -1 ERROR: The call to rename() did not return the correct value Expected: -1 Received: 0 5 FAIL
|
Review Information
Review Type |
TSMA Review |
Start Date |
null |
Completed |
null |
Status |
Complete |
Review Recommendation |
No Resolution Given |
Review Response |
We recommend this request be refused.
This is not a grey area. The specification is clear and the test is consistent with the spec wording.
The role of IRs are to interpret, but not to modify the specification. The base resolution process is provided for that purpose.
|
Review Type |
SA Review |
Start Date |
null |
Completed |
null |
Status |
Complete |
Review Resolution |
No Resolution Given |
Review Conclusion |
This request was initially refused, however it is now being circulated to the Base Working Group as a result of an appeal.
|
Review Type |
Expert Group Review |
Start Date |
null |
Completed |
null |
Status |
Complete |
Review Resolution |
No Resolution Given |
Review Conclusion |
This item was discussed at last weeks Base WG meeting. The group ruled that the current requirement was troublesome in that on some implementations this led to resources being consumed that were then not released. A PIN is recommended.
The EBUSY in rename() for Eastwood has been updated to: [EBUSY] The directory named by old or new is currently in use by the system or another process, or the path named by old and the implementation considers this to be an error, or new is a named STREAM and the implementation considers this to be an error.
|
Review Type |
SA Review |
Start Date |
null |
Completed |
null |
Status |
Complete |
Review Resolution |
Permanent Interpretation (PIN) |
Review Conclusion |
A Permanent Interpretation is granted.
|
Problem Reporting System Options:
|