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

The Open Brand -- Problem Reporting and Interpretations System


Problem Report 1070 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 1070.


Report 1070 Actions


    Problem Report Number 1070
    Submitter's Classification Test Suite problem
    State Resolved
    Resolution Temporary Interpretation (TIN)
    Problem Resolution ID TIN.X.0066
    Raised 1970-01-01 08:00
    Updated 2003-03-13 08:00
    Published 1998-04-23 08:00
    Product Standard Internationalised System Calls and Libraries Extended V2 (UNIX 98)
    Certification Program The Open Brand certification program
    Test Suite VSRT version 5.0.1
    Test Identification rt.os/timers/timer_settime 12,14
    Specification System Interfaces and Headers Issue 5
    Location in Spec See Problem Text
    Problem Summary TIN4R.00003 Implementation does not validate it_value if timer is not armed.
    Problem Text

    The test case 12 has the following test assertion:


    If _POSIX_TIMERS is defined or the implementation sup-
    ports the timer_settime() function as described in Sys-
    tem Interfaces and Headers, Issue 5:

    A call to timer_settime() when value->it_interval
    specifies a nanosecond value less than zero shall
    return -1 and set errno to EINVAL.


    The test case 14 has the following test assertion:

    If _POSIX_TIMERS is defined or the implementation sup-
    ports the timer_settime() function as described in Sys-
    tem Interfaces and Headers, Issue 5:

    A call to timer_settime() when value->it_interval
    specifies a nanosecond value greater than or equal to
    1000 million shall return -1 and set errno to EINVAL.


    XSH5 on page 947, its states

    ....If the it_value member of value is zero, the timer is disarmed.
    The effect of disarming or resetting a timer on pending expiration
    notifications is unspecified.

    In both test cases 12 and 14, the value->it_value member is zero and
    the timer is disarmed. A call to timer_settime() when the timer is
    disarmed does not provide meaningful interpretation of value->it_interval,
    therefore it is not spcified or subject to constraint.

    Test Output

    200|4 12 15:34:17|TP Start
    520|4 12 00000911 1 1|timer_settime succeeded for it_interval.tv_nsec = -1
    220|4 12 1 15:34:17|FAIL
    410|4 12 1 15:34:17|IC End
    400|4 14 1 15:34:17|IC Start
    200|4 14 15:34:17|TP Start
    520|4 14 00000911 1 1|timer_settime succeeded for 1000000000 nanoseconds
    520|4 14 00000911 1 2|timer_settime succeeded for 1000000001 nanoseconds
    220|4 14 1 15:34:17|FAIL
    410|4 14 1 15:34:17|IC End


    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.

    We don't see the relevance to these tests of the portion of the spec the
    cited: the tests do not cause expiration notifications, and in any
    event the spec does not specify any relationship between expiration
    notifications and argument validation error returns.

    The requirements of the specification are:

    The timer_settime() function sets the time until the next expiration
    of the timer specified by timerid from the it_value member of
    the value argument and arm the timer if the it_value member of
    value is non-zero. If the specified timer was already armed
    when timer_settime() is called, this call resets the time until
    next expiration to the value specified. If the it_value member
    of value is zero, the timer is disarmed. The effect of disarming
    or resetting a timer on pending expiration notifications is unspecified.
    . . .

    The reload value of the timer is set to the value specified by
    the it_interval member of value. When a timer is armed with a
    non-zero it_interval, a periodic (or repetitive) timer is specified.

    . . .

    The timer_settime() function will fail if:

    [EINVAL]
    A value structure specified a nanosecond value less than zero
    or greater than or equal to 1000 million.

    This seems to clearly require an implementation to validate the values passed
    in the value argument and fail with EINVAL if they are invalid. There
    is no basis on which to conclude that the state of the timer or of
    expiration validations, before or after the call, have any impact on
    these argument validation requirements.

    Review Type SA Review
    Start Date null
    Completed null
    Status Complete
    Review Resolution No Resolution Given
    Review Conclusion
    This could be considered a grey area. We will grant a TIN
    and seek a formal interpretation from POSIX.

    Review Type SA Review
    Start Date null
    Completed null
    Status Complete
    Review Resolution Temporary Interpretation (TIN)
    Review Conclusion
    A Temporary Interpretation is granted.

    Problem Reporting System Options:

     

    Back   


Contact the Certification Authority