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:
|