|
Home About Us A-Z Index Search * Contact Us Register Login Press ShopThe Open Brand -- Problem Reporting and Interpretations System |
Problem Report 1340 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 1340.
Report 1340 Actions
Problem Report Number 1340 Submitter's Classification Test Suite problem State Resolved Resolution Test Suite Deficiency (TSD) Problem Resolution ID TSD.X.0622 Raised 1970-01-01 08:00 Updated 2003-03-13 08:00 Published 1997-07-04 08:00 Product Standard Internationalised System Calls and Libraries Extended (UNIX 95) Certification Program The Open Brand certification program Test Suite VSU version 4.1.1 Test Identification base/execle 2 Problem Summary TSD4U.00195 This test may fail on implementations where the child does not have enough time to set up the signal handler. Problem Text
This is a problem of missing synchonisation between parent and child
process. The parent process forks a child, that executes program 'check'.
Program check initializes a signal routine for SIGINT.
The parent sleeps 2 seconds and then sends the interrupt character.
On our slow machines fork/exec and setup of the SIGINT handler sometimes
takes longer than these 2 seconds. This results in 'Child
terminated due to signal 2'.
There should be a kind of synchonisation between parent and child processes.
The same is true for
fexecle 2
fexeclp 2
fexecv 2
fexecve 2
fexecvp 2
Ref. to TSD4U.00191 (execl)Test Output
TEST CASE: execle
TEST PURPOSE #2
On a successful call to int execle(const
char *path, const char *arg0, ... /*, (char *0), char
*const envp[]*/) the new process shall inherit its
controlling terminal from the calling process image.
PREP: Open communication pipe for exec process
PREP: Open master side of pseudo terminal
PREP: Create session
PREP: Open slave side as controlling terminal
PREP: Connect exec-ed process' pipe to stdout
PREP: Check slave is controlling terminal
PREP: Construct exec path
PREP: Issue execle
PREP: Ignore SIGINT
PREP: Send interrupt character to controlling terminal
PREP: Wait for exec-ed process to exit
ERROR: Child terminated due to signal 2
CLEANUP: Close pipe
2 UNRESOLVED
TEST CASE: execlp
TEST PURPOSE #2
On a successful call to int execlp(const
char *file, const char *arg0, ... /*, (char *0)*/) the
new process shall inherit its controlling terminal
from the calling process image.
PREP: Open communication pipe for exec process
PREP: Open master side of pseudo terminal
PREP: Create session
PREP: Open slave side as controlling terminal
PREP: Connect exec-ed process' pipe to stdout
PREP: Check slave is controlling terminal
PREP: Construct exec path
PREP: Issue execlp
PREP: Ignore SIGINT
PREP: Send interrupt character to controlling terminal
PREP: Wait for exec-ed process to exit
ERROR: Child terminated due to signal 2
CLEANUP: Close pipe
2 UNRESOLVED
TEST CASE: execv
TEST PURPOSE #2
On a successful call to int execv(const
char *file, const char *arg0, ... /*, (char *0)*/) the
new process shall inherit its controlling terminal
from the calling process image.
PREP: Open communication pipe for exec process
PREP: Open master side of pseudo terminal
PREP: Create session
PREP: Open slave side as controlling terminal
PREP: Connect exec-ed process' pipe to stdout
PREP: Check slave is controlling terminal
PREP: Construct exec path
PREP: Issue execv
PREP: Ignore SIGINT
PREP: Send interrupt character to controlling terminal
PREP: Wait for exec-ed process to exit
ERROR: Child terminated due to signal 2
CLEANUP: Close pipe
2 UNRESOLVED
TEST CASE: execve
TEST PURPOSE #2
On a successful call to int execve(const
char *path, const char *arg0, ... /*, (char *0), char
*const envp[]*/) the new process shall inherit its
controlling terminal from the calling process image.
PREP: Open communication pipe for exec process
PREP: Open master side of pseudo terminal
PREP: Create session
PREP: Open slave side as controlling terminal
PREP: Connect exec-ed process' pipe to stdout
PREP: Check slave is controlling terminal
PREP: Construct exec path
PREP: Issue execve
PREP: Ignore SIGINT
PREP: Send interrupt character to controlling terminal
PREP: Wait for exec-ed process to exit
ERROR: Child terminated due to signal 2
CLEANUP: Close pipe
2 UNRESOLVED
TEST CASE: execvp
TEST PURPOSE #2
On a successful call to int execvp(const
char *file, const char *arg0, ... /*, (char *0)*/) the
new process shall inherit its controlling terminal
from the calling process image.
PREP: Open communication pipe for exec process
PREP: Open master side of pseudo terminal
PREP: Create session
PREP: Open slave side as controlling terminal
PREP: Connect exec-ed process' pipe to stdout
PREP: Check slave is controlling terminal
PREP: Construct exec path
PREP: Issue execvp
PREP: Ignore SIGINT
PREP: Send interrupt character to controlling terminal
PREP: Wait for exec-ed process to exit
ERROR: Child terminated due to signal 2
CLEANUP: Close pipe
2 UNRESOLVEDReview Information
Review Type TSMA Review Start Date null Completed null Status Complete Review Recommendation No Resolution Given Review Response
We agree this is a test suite deficiency in the test
suite version(s) listed.
Review Type SA Review Start Date null Completed null Status Complete Review Resolution Test Suite Deficiency (TSD) Review Conclusion
This is an agreed Test Suite Deficiency.
Problem Reporting System Options:
- View Report 1340
- List All PRs
- Search Reports
- Email the System Administrator
- View the The Open Brand Interpretations Database User Manual
Contact the Certification Authority