|
Home About Us A-Z Index Search * Contact Us Register Login Press ShopThe Open Brand -- Problem Reporting and Interpretations System |
Problem Report 2448 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 2448.
Report 2448 Actions
Problem Report Number 2448 Submitter's Classification Test Suite problem State Resolved Resolution Test Suite Deficiency (TSD) Problem Resolution ID TSD.X.1273 Raised 2005-02-11 18:12 Updated 2005-02-11 18:28 Published 2005-02-11 18:28 Product Standard Internationalised System Calls and Libraries Extended V3 (UNIX 03) Certification Program The Open Brand certification program Test Suite VSU version 5.2.6 Test Identification CAPI.os/procprim/vfork 9,10,16 Specification Base Definitions Issue 6 Problem Summary The calls made in a vfork()ed child cause undefined behaviour Problem Text The behaviour of these tests is undefined because they call
times(), sigpending(), or sigismember() after a vfork() and before
successfully calling exec*() or _exit(). The standard says:
"The vfork() function shall be equivalent to fork(), except that the
behavior is undefined if the process created by vfork() either modifies
any data other than a variable of type pid_t used to store the return
value from vfork(), or returns from the function in which vfork() was
called, or calls any other function before successfully calling
_exit()"
In our vfork() implementation, we lazy-allocate resources such
as the rusage structure (where times() gets its information from)
and signal masks, only allocating them to the child if there is in
fact an exec*(), rather than an _exit().Test Output ************************************************************************
/tset/CAPI.os/procprim/vfork/T.vfork 9 Failed
Test Description:
Base Required Conformance
A successful call to pid_t vfork(void) shall set the child
process'
tms_utime to 0.
Test Information:
PREP: Eat up some time in the parent process
TEST: Child process tms_utime is set to zero
ERROR: Child's tms_utime values were not zero
INFO: parent tms_utime 10
INFO: approximate child tms_cutime 0
************************************************************************
/tset/CAPI.os/procprim/vfork/T.vfork 10 Failed
Test Description:
Base Required Conformance
A successful call to pid_t vfork(void) shall set the child
process'
tms_stime to 0.
Test Information:
PREP: Eat up some time in the parent process
TEST: Child process's value of tms_stime is set to zero
TEST: Child process is returned a value of zero
ERROR: Child's "tms_stime" value was not zero
************************************************************************
/tset/CAPI.os/procprim/vfork/T.vfork 16 Failed
Test Description:
Base Required Conformance
A successful call to pid_t vfork(void) shall initialize the set of
signals pending for the child process to the empty set.
Test Information:
PREP: Set process signal mask to block a signal
PREP: Send the signal that was blocked to this process to obtain
a pending signal
PREP: Ensure signal is pending
TEST: Signal not pending in child process
ERROR: SIGUSR1 was pending in childReview Information
Review Type TSMA Review Start Date 2005-02-11 18:12 Last Updated 2005-02-11 18:19 Completed 2005-02-11 18: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 2005-02-11 18:19 Last Updated 2005-02-11 18:27 Completed 2005-02-11 18:27 Status Complete Review Resolution Test Suite Deficiency (TSD) Review Conclusion This is an agreed Test Suite Deficiency.
Problem Reporting System Options:
- View Report 2448
- List All PRs
- Search Reports
- Email the System Administrator
- View the The Open Brand Interpretations Database User Manual
Contact the Certification Authority