HomeAbout Us A-Z IndexSearch * Contact Us Register LoginPress Shop

The Open Brand -- Problem Reporting and Interpretations System


Problem Report 1617 Details

Help Show help | Quick Search | Submit a Test Suite Support Request | Click here to view your privileges

This page provides all information on Problem Report 1617.


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:

     

    Back   


Contact the Certification Authority