|
Home About Us A-Z Index Search * Contact Us Register Login Press ShopThe Open Brand -- Problem Reporting and Interpretations System |
Problem Report 1223 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 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|FAILReview 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:
- View Report 1223
- List All PRs
- Search Reports
- Email the System Administrator
- View the The Open Brand Interpretations Database User Manual
Contact the Certification Authority