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

The Open Brand -- Problem Reporting and Interpretations System


Problem Report 1340 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 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 UNRESOLVED

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

     

    Back   


Contact the Certification Authority