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

The Open Brand -- Problem Reporting and Interpretations System


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


Report 1058 Actions


    Problem Report Number 1058
    Submitter's Classification Specification problem
    State Resolved
    Resolution Rejected (REJ)
    Problem Resolution ID REJ.X.0295
    Raised 1970-01-01 08:00
    Updated 2003-03-13 08:00
    Published null
    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/aio/aio_cancel 1-7
    Problem Summary PG4R.00009 A TIN is requested to allow sysconf to return -1 and not change errno to indicate a limit is not imposed by the implementation, based on a POSIX interpretation.
    Problem Text

    These are the failing cases:

    rt.os/aio/aio_cancel/T.aio_cancel 1
    rt.os/aio/aio_cancel/T.aio_cancel 2
    rt.os/aio/aio_cancel/T.aio_cancel 3
    rt.os/aio/aio_cancel/T.aio_cancel 4
    rt.os/aio/aio_cancel/T.aio_cancel 5
    rt.os/aio/aio_cancel/T.aio_cancel 6
    rt.os/aio/aio_cancel/T.aio_cancel 7
    rt.os/aio/aio_error/T.aio_error 1
    rt.os/aio/aio_error/T.aio_error 2
    rt.os/aio/aio_error/T.aio_error 3
    rt.os/aio/aio_fsync/T.aio_fsync 1
    rt.os/aio/aio_fsync/T.aio_fsync 2
    rt.os/aio/aio_fsync/T.aio_fsync 3
    rt.os/aio/aio_fsync/T.aio_fsync 4
    rt.os/aio/aio_fsync/T.aio_fsync 5
    rt.os/aio/aio_fsync/T.aio_fsync 9
    rt.os/aio/aio_read/T.aio_read 1
    rt.os/aio/aio_read/T.aio_read 4
    rt.os/aio/aio_read/T.aio_read 5
    rt.os/aio/aio_read/T.aio_read 6
    rt.os/aio/aio_read/T.aio_read 7
    rt.os/aio/aio_return/T.aio_return 1
    rt.os/aio/aio_return/T.aio_return 2
    rt.os/aio/aio_return/T.aio_return 3
    rt.os/aio/aio_suspend/T.aio_suspend 1
    rt.os/aio/aio_suspend/T.aio_suspend 2
    rt.os/aio/aio_suspend/T.aio_suspend 3
    rt.os/aio/aio_suspend/T.aio_suspend 4
    rt.os/aio/aio_suspend/T.aio_suspend 5
    rt.os/aio/aio_write/T.aio_write 1
    rt.os/aio/aio_write/T.aio_write 4
    rt.os/aio/aio_write/T.aio_write 5
    rt.os/aio/aio_write/T.aio_write 6
    rt.os/aio/aio_write/T.aio_write 7
    rt.os/aio/aio_write/T.aio_write 8
    rt.os/aio/aio_write/T.aio_write 11
    rt.os/aio/lio_listio/T.lio_listio 31
    rt.os/aio/lio_listio/T.lio_listio 44
    rt.os/ioprim/close/T.close 1
    rt.os/procenv/sysconf/T.sysconf 2
    rt.os/procenv/sysconf/T.sysconf 3
    rt.os/procenv/sysconf/T.sysconf 4

    In each case, the test suite is interpreting the "-1" return as an
    indication that the specified facility is not supported. In our
    implementation, the "-1" return value with no change of errno
    means that the specified value is not limited by the implementation.

    The POSIX Interpretations Committee has agreed, in defect report IS9945-1#83,
    that the standard does not speak to this issue and that no conformance distinction
    can be made between different implementations thereof. Our
    results are covered by that interpretation.

    The results are also covered by PIN5TH.00001.

    --------

    The following note addresses a peripheral issue and is not a part of the formal
    interpretation request:

    The "errno" value of EINVAL is not correct. Our implementaion does not
    alter the value or errno in this case. Here is a sample program run on our
    implementation:
    test_2881<4>: cat sysconf.c
    #include <unistd.h>
    #include <errno.h>

    extern int errno;

    main()
    {
    int ret = 0;

    errno = 0;

    ret=sysconf(_SC_AIO_MAX);
    printf("Returned %d, errno=%d\n", ret, errno);
    }
    test_2881<5>: c89 -o sysconf sysconf.c
    test_2881<6>: sysconf
    Returned -1, errno=0
    test_2881<7>:


    The test suite does not clear errno before calling sysconf(). We are
    filing a support request regarding this.

    Test Output

    10|15 /tset/rt.os/aio/aio_cancel/T.aio_cancel 18:38:45|TC Start, scenario ref 18-0
    15|15 3.1-lite 8|TCM Start
    400|15 1 1 18:38:45|IC Start
    200|15 1 18:38:45|TP Start
    520|15 1 00013671 1 1|sysconf(_SC_AIO_MAX) failed, errno = 22 (EINVAL)
    520|15 1 00013671 1 2|> test with pipe
    520|15 1 00013671 1 3|testing not supported on pipes
    520|15 1 00013671 1 4|> test with pty
    520|15 1 00013671 1 5|pty testing not configured
    520|15 1 00013671 1 6|> test with tty
    520|15 1 00013671 1 7|tty testing not configured
    520|15 1 00013671 1 8|> test with pipe
    520|15 1 00013671 1 9|testing not supported on pipes
    520|15 1 00013671 1 10|> test with pty
    520|15 1 00013671 1 11|pty testing not configured
    520|15 1 00013671 1 12|> test with tty
    520|15 1 00013671 1 13|tty testing not configured
    220|15 1 1 18:38:45|FAIL
    410|15 1 1 18:38:45|IC End
    400|15 2 1 18:38:45|IC Start
    200|15 2 18:38:45|TP Start
    520|15 2 00013671 1 1|sysconf(_SC_AIO_MAX) failed, errno = 22 (EINVAL)
    520|15 2 00013671 1 2|> test with pipe
    520|15 2 00013671 1 3|testing not supported on pipes
    520|15 2 00013671 1 4|> test with pty
    520|15 2 00013671 1 5|pty testing not configured
    520|15 2 00013671 1 6|> test with tty
    520|15 2 00013671 1 7|tty testing not configured
    520|15 2 00013671 1 8|> test with pipe
    520|15 2 00013671 1 9|testing not supported on pipes
    520|15 2 00013671 1 10|> test with pty
    520|15 2 00013671 1 11|pty testing not configured
    520|15 2 00013671 1 12|> test with tty
    520|15 2 00013671 1 13|tty testing not configured
    220|15 2 1 18:38:45|FAIL
    410|15 2 1 18:38:45|IC End
    400|15 3 1 18:38:45|IC Start
    200|15 3 18:38:45|TP Start
    520|15 3 00013671 1 1|sysconf(_SC_AIO_MAX) failed, errno = 22 (EINVAL)
    520|15 3 00013671 1 2|> test with pipe
    520|15 3 00013671 1 3|testing not supported on pipes
    520|15 3 00013671 1 4|> test with pty
    520|15 3 00013671 1 5|pty testing not configured
    520|15 3 00013671 1 6|> test with tty
    520|15 3 00013671 1 7|tty testing not configured
    520|15 3 00013671 1 8|> test with pipe
    520|15 3 00013671 1 9|testing not supported on pipes
    520|15 3 00013671 1 10|> test with pty
    520|15 3 00013671 1 11|pty testing not configured
    520|15 3 00013671 1 12|> test with tty
    520|15 3 00013671 1 13|tty testing not configured
    520|15 3 00013671 1 14|> test with pipe
    520|15 3 00013671 1 15|testing not supported on pipes
    520|15 3 00013671 1 16|> test with pty
    520|15 3 00013671 1 17|pty testing not configured
    520|15 3 00013671 1 18|> test with tty
    520|15 3 00013671 1 19|tty testing not configured
    520|15 3 00013671 1 20|> test with pipe
    520|15 3 00013671 1 21|testing not supported on pipes
    520|15 3 00013671 1 22|> test with pty
    520|15 3 00013671 1 23|pty testing not configured
    520|15 3 00013671 1 24|> test with tty
    520|15 3 00013671 1 25|tty testing not configured
    220|15 3 1 18:38:45|FAIL
    410|15 3 1 18:38:45|IC End
    400|15 4 1 18:38:45|IC Start
    200|15 4 18:38:45|TP Start
    520|15 4 00013671 1 1|sysconf(_SC_AIO_MAX) failed, errno = 22 (EINVAL)
    520|15 4 00013671 1 2|> test with pipe
    520|15 4 00013671 1 3|testing not supported on pipes
    520|15 4 00013671 1 4|> test with pty
    520|15 4 00013671 1 5|pty testing not configured
    520|15 4 00013671 1 6|> test with tty
    520|15 4 00013671 1 7|tty testing not configured
    520|15 4 00013671 1 8|> test with pipe
    520|15 4 00013671 1 9|testing not supported on pipes
    520|15 4 00013671 1 10|> test with pty
    520|15 4 00013671 1 11|pty testing not configured
    520|15 4 00013671 1 12|> test with tty
    520|15 4 00013671 1 13|tty testing not configured
    220|15 4 1 18:38:45|FAIL
    410|15 4 1 18:38:45|IC End
    400|15 5 1 18:38:45|IC Start
    200|15 5 18:38:45|TP Start
    520|15 5 00013671 1 1|sysconf(_SC_AIO_MAX) failed, errno = 22 (EINVAL)
    520|15 5 00013671 1 2|> test with pipe
    520|15 5 00013671 1 3|testing not supported on pipes
    520|15 5 00013671 1 4|> test with pty
    520|15 5 00013671 1 5|pty testing not configured
    520|15 5 00013671 1 6|> test with tty
    520|15 5 00013671 1 7|tty testing not configured
    520|15 5 00013671 1 8|> test with pipe
    520|15 5 00013671 1 9|testing not supported on pipes
    520|15 5 00013671 1 10|> test with pty
    520|15 5 00013671 1 11|pty testing not configured
    520|15 5 00013671 1 12|> test with tty
    520|15 5 00013671 1 13|tty testing not configured
    220|15 5 1 18:38:45|FAIL
    410|15 5 1 18:38:45|IC End
    400|15 6 1 18:38:45|IC Start
    200|15 6 18:38:45|TP Start
    520|15 6 00013671 1 1|sysconf(_SC_AIO_MAX) failed, errno = 22 (EINVAL)
    520|15 6 00013671 1 2|> test with pipe
    520|15 6 00013671 1 3|testing not supported on pipes
    520|15 6 00013671 1 4|> test with pty
    520|15 6 00013671 1 5|pty testing not configured
    520|15 6 00013671 1 6|> test with tty
    520|15 6 00013671 1 7|tty testing not configured
    520|15 6 00013671 1 8|> test with pipe
    520|15 6 00013671 1 9|testing not supported on pipes
    520|15 6 00013671 1 10|> test with pty
    520|15 6 00013671 1 11|pty testing not configured
    520|15 6 00013671 1 12|> test with tty
    520|15 6 00013671 1 13|tty testing not configured
    520|15 6 00013671 1 14|> test with pipe
    520|15 6 00013671 1 15|testing not supported on pipes
    520|15 6 00013671 1 16|> test with pty
    520|15 6 00013671 1 17|pty testing not configured
    520|15 6 00013671 1 18|> test with tty
    520|15 6 00013671 1 19|tty testing not configured
    520|15 6 00013671 1 20|> test with pipe
    520|15 6 00013671 1 21|testing not supported on pipes
    520|15 6 00013671 1 22|> test with pty
    520|15 6 00013671 1 23|pty testing not configured
    520|15 6 00013671 1 24|> test with tty
    520|15 6 00013671 1 25|tty testing not configured
    220|15 6 1 18:38:45|FAIL
    410|15 6 1 18:38:45|IC End
    400|15 7 1 18:38:45|IC Start
    200|15 7 18:38:45|TP Start
    520|15 7 00013672 1 1|aio_cancel failed, errno = 22 (EINVAL)
    220|15 7 1 18:38:45|FAIL
    410|15 7 1 18:38:45|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.

    Patch 5.0.1B provides a workaround for these failures as regards
    AIO_MAX. We recommend that the submitter be required to apply this patch
    prior to making a single branding run.

    In our opinion the implications of this change to the semantics of
    sysconf on application portability are worrisome, as is the
    impossibility of definitively verifying the lack of an implementation
    limit. To address this second consideration we recommend that when
    sysconf behaves in this fashion the test for sysconf(_SC_AIO_MAX):

    1) verify no limit exists up to a good sized number
    2) return FIP, so a vendor can document the lack of a limit
    in their branding application

    As regards sysconf(_SC_DELAYTIMER_MAX), we do not believe it is conforming
    for an implementation to return -1 and not change errno to indicate it does
    not impose a limit. timer_getoverrun must return this value
    for all succeeding overruns after the number of overruns reaches it.
    Thus INT_MAX (since the function returns an int) is the limit
    in the absence of any other, as wrapping around to zero if the number
    of overruns got this high would cause erroneous timer_getoverrun results.
    So the system must impose a limit in the inclusive range 32 to INT_MAX.

    Similarly, for sysconf(_SC_AIO_PRIO_DELTA_MAX) the implementation
    would seem to have to impose a limit since the size of the aio_reqprio
    defines a de facto maximum.

    Review Type SA Review
    Start Date null
    Completed null
    Status Complete
    Review Resolution No Resolution Given
    Review Conclusion
    The VSRT501B patch addresses all applicable AIO_MAX test problems
    reported in the request.

    Review Type SA Review
    Start Date null
    Completed null
    Status Complete
    Review Resolution Rejected (REJ)
    Review Conclusion
    This request is refused.

    Problem Reporting System Options:

     

    Back   


Contact the Certification Authority