|
Home About Us A-Z Index Search * Contact Us Register Login Press ShopThe Open Brand -- Problem Reporting and Interpretations System |
Problem Report 2699 Details
Show help | Quick Search | Submit a Test Suite Support Request | Click here to view your privileges
This page provides all information on Problem Report 2699.
Report 2699 Actions
Problem Report Number 2699 Submitter's Classification Test Suite problem State Resolved Resolution Test Suite Deficiency (TSD) Problem Resolution ID TSD.X.1413 Raised 2018-08-02 03:23 Updated 2018-08-02 09:54 Published 2018-08-02 09:54 Product Standard Internationalised System Calls and Libraries Extended V3 (UNIX 03) Certification Program The Open Brand certification program Test Suite VSX4 version 4.7.14 Test Identification ANSI.os/genuts/system_X/T.system_X 52 Specification Base Definitions Issue 6 Location in Spec http://pubs.opengroup.org/onlinepubs/9699919799/functions/system.html Problem Summary VSX test /tset/ANSI.os/genuts/system_X/T.system_X 52 makes unwarranted
assumptionsProblem Text We think this test is invalid. It is legal to return -1/ECHILD from
system(). According to the
specification at
http://pubs.opengroup.org/onlinepubs/9699919799/functions/system.html:
ERRORS
[CX] [Option Start] The system() function may set errno values as
described by fork. [Option End]
In addition, system() may fail if:
[ECHILD]
[CX] [Option Start] The status of the child process created by system()
is no longer available.
[Option End]
This test essentially does the following:
int rc;
signal(SIGCHLD, SIG_IGN);
rc = system("exit 0");
if (rc < 0) {
perror("system");
}
The call signal(SIGCHLD, SIG_IGN) ignores SIGCHLD signals, which causes
the system to not
create zombies. Since zombies are the means by which the exit status of
a process is preserved
until one of the waitX() calls is made, this call makes the exit status
unavailable, thereby triggering
the exclusion. The same applies when using sigaction() with sa_flags set
to SA_NOCLDWAIT.
The call to system() does indeed wait for the child to terminate. The
waiting is done using wait4().Test Output 400|100 52 1 16:38:34|IC Start
520|100 52 00079864 5 1|testing with SIGCHLD ignored ...
520|100 52 00079864 7 1|system() returned -1, expected 0
520|100 52 00079864 7 2|errno was set to 10 (ECHILD)
520|100 52 00079864 9 1|testing with SIGCHLD handler and SA_NOCLDWAIT
set ...
520|100 52 00079864 11 1|system() returned -1, expected 0
520|100 52 00079864 11 2|errno was set to 10 (ECHILD)
220|100 52 2 16:38:49|UNRESOLVED
410|100 52 1 16:38:49|IC EndReview Information
Review Type TSMA Review Start Date 2018-08-02 03:23 Last Updated 2018-08-02 09:19 Completed 2018-08-02 09:19 Status Complete Review Recommendation Test Suite Deficiency (TSD) Review Response This is accepted as a fault in the test suite.
Review Type SA Review Start Date 2018-08-02 17:19 Last Updated 2018-08-02 09:49 Completed 2018-08-02 09:49 Status Complete Review Resolution Test Suite Deficiency (TSD) Review Conclusion The recommended resolution was given as Test Suite Deficiency (TSD).
Problem Reporting System Options:
- View Report 2699
- List All PRs
- Search Reports
- Email the System Administrator
- View the The Open Brand Interpretations Database User Manual
Contact the Certification Authority