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

The Open Brand -- Problem Reporting and Interpretations System


Problem Report 1223 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 1223.


Report 1223 Actions


    Problem Report Number 1223
    Submitter's Classification Test Suite problem
    State Resolved
    Resolution Rejected (REJ)
    Problem Resolution ID REJ.X.0425
    Raised 1970-01-01 08:00
    Updated 2003-03-13 08:00
    Published null
    Product Standard Internationalised System Calls and Libraries Extended (UNIX 95)
    Certification Program The Open Brand certification program
    Test Suite VSU version 4.1.0
    Test Identification Base/sigaction 30
    Problem Summary PG4U.00042 This was refused because it is a duplicate. Use TSD4U.00091 instead.
    Problem Text
    This test fails intermittently, approximately one time in every four runs.

    The test strategy is as follows:

    fork a child
    child pokes parent, then stops itself
    (when continued, it will exit)
    parent sets SIGCHLD handler
    parent sends SIGCONT to child
    (parent expects to get SIGCHLD with code CLD_CONTINUED)
    SIGCHLD handler checks for expected code
    parent declares victory

    We receive the expected SIGCHLD with code CLD_CONTINUED.
    However, the child process's next act after being continued is to exit.
    If the parent process is still around, it will get a second SIGCHLD
    as a result of the child exiting, and the signal handler will see a
    CLD_EXITED code and declare an error.

    The change to the fsigaction1.c module is as follows,
    to change the sigaction call so as to add
    SA_RESETHAND to prevent the second, unexpected SIGCHLD from being received.


    *** fsigaction1.c
    --- fsigaction1.c.new
    ***************
    *** 2786,2792 ****
    return;
    }
    act.sa_sigaction = sh_30A;
    ! act.sa_flags = SA_SIGINFO|SA_NOCLDWAIT;

    if(sigaction(SIGCHLD,&act,(struct sigaction *)NULL) == -1) {
    uwerrno("sigaction");
    --- 2786,2792 ----
    return;
    }
    act.sa_sigaction = sh_30A;
    ! act.sa_flags = SA_SIGINFO|SA_NOCLDWAIT|SA_RESETHAND;

    if(sigaction(SIGCHLD,&act,(struct sigaction *)NULL) == -1) {
    uwerrno("sigaction");

    Test Output
    520|70 30 2633 1 1|SPEC1170TESTSUITE CASE 30
    520|70 30 2633 1 2|After a call to int sigaction(int sig, const struct
    520|70 30 2633 1 3|sigaction *act, struct sigaction *oact) with
    520|70 30 2633 1 4|SA_SIGINFO set in the sa_flags member of the sigaction
    520|70 30 2633 1 5|structure pointed to by act and sig equal to SIGCHLD,
    520|70 30 2633 1 6|on entry to the signal catching function specified by
    520|70 30 2633 1 7|the sa_handler member when the stopped child has
    520|70 30 2633 1 8|continued the si_code member of the structure pointed
    520|70 30 2633 1 9|to by the siginfo argument shall contain
    520|70 30 2633 1 10|CLD_CONTINUED, the si_pid member shall contain the
    520|70 30 2633 1 11|child process ID, the si_status member shall contain
    520|70 30 2633 1 12|the child's signal and the si_uid member
    520|70 30 2633 1 13|shall contain the real user ID of the process that
    520|70 30 2633 1 14|sent the signal.
    520|70 30 2815 1 1|PREP: Set up action for SIGCHLD
    520|70 30 2815 1 2|PREP: fork() a child that stops itself
    520|70 30 2815 2 1|PREP: Set up action for SIGCHLD
    520|70 30 2815 2 2|TEST: Send SIGCONT to child
    520|70 30 2815 2 3|TEST: signal = SIGCHLD
    520|70 30 2815 2 4|TEST: si_code = CLD_CONTINUED
    520|70 30 2815 2 5|TEST: si_status = SIGCONT
    520|70 30 2815 2 6|TEST: signal = SIGCHLD
    520|70 30 2815 2 7|TEST: si_code = CLD_CONTINUED
    520|70 30 2815 2 8|ERROR: si_code incorrect. Expected 6,Received 1
    520|70 30 2815 2 9|TEST: si_status = SIGCONT
    520|70 30 2815 2 10|ERROR: si_status incorrect. Expected SIGCONT,Received Unkn
    own signal (0)
    220|70 30 1 17:36:54|FAIL

    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.

    This is the same as ruling TSD4U.00091

    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:

     

    Back   


Contact the Certification Authority