Report 1048 Actions
Problem Report Number |
1048 |
Submitter's Classification |
Minor System Fault |
State |
Resolved |
Resolution |
Minor System Fault (MSF) |
Problem Resolution ID |
MSF.X.0038 |
Raised |
1970-01-01 08:00 |
Updated |
2003-03-13 08:00 |
Published |
1998-07-06 08:00 |
Expiry Date |
1999-07-06 |
Product Standard |
Internationalised System Calls and Libraries Extended V2 (UNIX 98) |
Certification Program |
The Open Brand certification program |
Test Suite |
VSRT version 5.0.1 |
Test Identification |
rt.os/procprim/sigwait 2 |
Problem Summary |
MSF4R.00002 An MSF is requested as the implementation may not select signals in priority order and signals may not be delivered (signal handlers not run) in priority order in a POSIX threads Realtime application |
Problem Text |
This request is for the following test failures: rt.os/procprim/sigwait/T.sigwait 2 rt.os/rtsignals/sigtimedwait/T.sigtimedwait 5 rt.os/rtsignals/sigwaitinfo/T.sigwaitinfo 5 rt.os/procprim/sigaction/T.sigaction 3 rt.os/procprim/sigaction/T.sigaction 5 The XSH5 specification states that when multiple realtime signals are pending, sigwait(), sigwaitinfo() and sigtimedwait() shall select the signal in priority order, with SIGRTMIN having the highest priority and SIGRTMAX the lowest. The same applies when the realtime signals are delivered (disposition for realtime signals is to catch, signal handlers are installed), that is, they shall be delivered in priority order. We are seeking a MSF for a recognized bug in our implementation whereby with multiple real time signals pending, the maximum of _POSIX_SIGQUEUE_MAX (32 for the implementation) instances, sigwait(), sigwaitinfo(), and sigtimedwait() may not select the signals in priority order and signals may not be delivered (signal handlers are not run) in priority order in a POSIX threads Realtime application. The impact on applications is that they can not depend on the value _POSIX_SIGQUEUE_MAX. The priority order for selection or delivery of pending signals is currently supported for a POSIX threads Realtime application as long as the queue depth is not greater than one. Priority order is supported when a single instance of any realtime signal is pending. As this request was initially refused we are also putting forward the following in support of our case. Clarifying the text of the original waiver request, the purpose of the VSRT test suite is to test realtime functionality. Were it only testing realtime functionality of sigwait, sigtimedwait, sigwaitinfo, and sigaction (i.e. linking with -lrt only) as opposed to threaded realtime functionality (i.e. linking with both -lrt and -lpthread), this test would pass. In summary: 1. The problem is not present and will not affect applications that only link with -lrt (real time library). 2. The problem is not present and will not affect applications that only link with -lpthread (threads library). 3. Only applications that link with both -lrt and -lpthread MAY be affected, in other words, threaded realtime applications. 4. Our customers have been using our realtime and threads functionality for over a year and in that time have not raised this as an issue or bug. The only application where this problem has become visible that we are aware of is the test suite.
|
Test Output |
******************************************************************** /tset/rt.os/procprim/sigwait/T.sigwait 2 Failed Test Description: If _POSIX_REALTIME_SIGNALS is defined: If a call to sigwait() selects any of the multiple pending signals in the range SIGRTMIN to SIGRTMAX it shall be the lowest numbered one. Test Information: Expected sig for signal 1 = 38, is 45 Expected sig for signal 3 = 38, is 45 Expected sig for signal 5 = 38, is 45 Expected sig for signal 7 = 38, is 45 Expected sig for signal 9 = 38, is 45 Expected sig for signal 11 = 38, is 45 Expected sig for signal 13 = 38, is 45 Expected sig for signal 15 = 38, is 45 Expected sig for signal 16 = 45, is 38 Expected sig for signal 18 = 45, is 38 Expected sig for signal 20 = 45, is 38 Expected sig for signal 22 = 45, is 38 Expected sig for signal 24 = 45, is 38 Expected sig for signal 26 = 45, is 38 Expected sig for signal 28 = 45, is 38 Expected sig for signal 30 = 45, is 38 ******************************************************************** ******************************************************************** /tset/rt.os/rtsignals/sigtimedwait/T.sigtimedwait 5 Failed Test Description: If _POSIX_REALTIME_SIGNALS is defined or the implementation supports the sigtimedwait() function as described in System Interfaces and Headers, Issue 5: Should any of the multiple pending signals in the range SIGRTMIN to SIGRTMAX be selected by a call to sigtimedwait() it shall be the lowest numbered one. Test Information: Expected si_signo for signal 1 = 38, is 45 si_value for signal 1 = 16, maximum expected value is 15 Expected si_signo for signal 3 = 38, is 45 si_value for signal 3 = 17, maximum expected value is 15 Expected si_signo for signal 5 = 38, is 45 si_value for signal 5 = 18, maximum expected value is 15 Expected si_signo for signal 7 = 38, is 45 si_value for signal 7 = 19, maximum expected value is 15 Expected si_signo for signal 9 = 38, is 45 si_value for signal 9 = 20, maximum expected value is 15 Expected si_signo for signal 11 = 38, is 45 si_value for signal 11 = 21, maximum expected value is 15 Expected si_signo for signal 13 = 38, is 45 si_value for signal 13 = 22, maximum expected value is 15 Expected si_signo for signal 15 = 38, is 45 si_value for signal 15 = 23, maximum expected value is 15 Signal 8 not received Signal 9 not received Signal 10 not received Signal 11 not received Signal 12 not received Signal 13 not received Signal 14 not received Signal 15 not received Expected si_signo for signal 16 = 45, is 38 si_value for signal 16 = 8, expected value between 16 and 31 Expected si_signo for signal 18 = 45, is 38 si_value for signal 18 = 9, expected value between 16 and 31 Expected si_signo for signal 20 = 45, is 38 si_value for signal 20 = 10, expected value between 16 and 31 Expected si_signo for signal 21 = 45, is 38 si_value for signal 21 = 11, expected value between 16 and 31 Expected si_signo for signal 22 = 45, is 38 si_value for signal 22 = 12, expected value between 16 and 31 Expected si_signo for signal 23 = 45, is 38 si_value for signal 23 = 13, expected value between 16 and 31 Expected si_signo for signal 24 = 45, is 38 si_value for signal 24 = 14, expected value between 16 and 31 Expected si_signo for signal 25 = 45, is 38 si_value for signal 25 = 15, expected value between 16 and 31 Signal 16 not received Signal 17 not received Signal 18 not received Signal 19 not received Signal 20 not received Signal 21 not received Signal 22 not received Signal 23 not received ******************************************************************** ******************************************************************** /tset/rt.os/rtsignals/sigwaitinfo/T.sigwaitinfo 5 Failed Test Description: If _POSIX_REALTIME_SIGNALS is defined or the implementation supports the sigwaitinfo() function as described in System Interfaces and Headers, Issue 5: Should any of the multiple pending signals in the range SIGRTMIN to SIGRTMAX be selected by a call to sigwaitinfo() it shall be the lowest numbered one. Test Information: Expected si_signo for signal 1 = 38, is 45 si_value for signal 1 = 16, maximum expected value is 15 Expected si_signo for signal 3 = 38, is 45 si_value for signal 3 = 17, maximum expected value is 15 Expected si_signo for signal 5 = 38, is 45 si_value for signal 5 = 18, maximum expected value is 15 Expected si_signo for signal 7 = 38, is 45 si_value for signal 7 = 19, maximum expected value is 15 Expected si_signo for signal 9 = 38, is 45 si_value for signal 9 = 20, maximum expected value is 15 Expected si_signo for signal 11 = 38, is 45 si_value for signal 11 = 21, maximum expected value is 15 Expected si_signo for signal 13 = 38, is 45 si_value for signal 13 = 22, maximum expected value is 15 Expected si_signo for signal 15 = 38, is 45 si_value for signal 15 = 23, maximum expected value is 15 Signal 8 not received Signal 9 not received Signal 10 not received Signal 11 not received Signal 12 not received Signal 13 not received Signal 14 not received Signal 15 not received Expected si_signo for signal 16 = 45, is 38 si_value for signal 16 = 8, expected value between 16 and 31 Expected si_signo for signal 18 = 45, is 38 si_value for signal 18 = 9, expected value between 16 and 31 Expected si_signo for signal 20 = 45, is 38 si_value for signal 20 = 10, expected value between 16 and 31 Expected si_signo for signal 22 = 45, is 38 si_value for signal 22 = 11, expected value between 16 and 31 Expected si_signo for signal 23 = 45, is 38 si_value for signal 23 = 12, expected value between 16 and 31 Expected si_signo for signal 24 = 45, is 38 si_value for signal 24 = 13, expected value between 16 and 31 Expected si_signo for signal 25 = 45, is 38 si_value for signal 25 = 14, expected value between 16 and 31 Expected si_signo for signal 26 = 45, is 38 si_value for signal 26 = 15, expected value between 16 and 31 Signal 16 not received Signal 17 not received Signal 18 not received Signal 19 not received Signal 20 not received Signal 21 not received Signal 22 not received Signal 23 not received ******************************************************************** ******************************************************************** /tset/rt.os/procprim/sigaction/T.sigaction 3 Failed Test Description: If _POSIX_REALTIME_SIGNALS is defined: When multiple unblocked signals all in the range SIGRTMIN to SIGRTMAX are pending the implementation shall deliver the pending unblocked signal with the lowest number within that range. Test Information: Expected si_signo for signal 1 = 38, is 45 si_value for signal 1 = 16, maximum expected value is 15 Expected si_signo for signal 3 = 38, is 45 si_value for signal 3 = 17, maximum expected value is 15 Expected si_signo for signal 5 = 38, is 45 si_value for signal 5 = 18, maximum expected value is 15 Expected si_signo for signal 7 = 38, is 45 si_value for signal 7 = 19, maximum expected value is 15 Expected si_signo for signal 9 = 38, is 45 si_value for signal 9 = 20, maximum expected value is 15 Expected si_signo for signal 11 = 38, is 45 si_value for signal 11 = 21, maximum expected value is 15 Expected si_signo for signal 13 = 38, is 45 si_value for signal 13 = 22, maximum expected value is 15 Expected si_signo for signal 15 = 38, is 45 si_value for signal 15 = 23, maximum expected value is 15 Signal 8 not received Signal 9 not received Signal 10 not received Signal 11 not received Signal 12 not received Signal 13 not received Signal 14 not received Signal 15 not received Expected si_signo for signal 16 = 45, is 38 si_value for signal 16 = 8, expected value is between 16 and 31 Expected si_signo for signal 18 = 45, is 38 si_value for signal 18 = 9, expected value is between 16 and 31 Expected si_signo for signal 20 = 45, is 38 si_value for signal 20 = 10, expected value is between 16 and 31 Expected si_signo for signal 22 = 45, is 38 si_value for signal 22 = 11, expected value is between 16 and 31 Expected si_signo for signal 23 = 45, is 38 si_value for signal 23 = 12, expected value is between 16 and 31 Expected si_signo for signal 24 = 45, is 38 si_value for signal 24 = 13, expected value is between 16 and 31 Expected si_signo for signal 25 = 45, is 38 si_value for signal 25 = 14, expected value is between 16 and 31 Expected si_signo for signal 26 = 45, is 38 si_value for signal 26 = 15, expected value is between 16 and 31 Signal 16 not received Signal 17 not received Signal 18 not received Signal 19 not received Signal 20 not received Signal 21 not received Signal 22 not received Signal 23 not received ******************************************************************* ******************************************************************** /tset/rt.os/procprim/sigaction/T.sigaction 5 Failed Test Description: If _POSIX_REALTIME_SIGNALS is defined: Realtime signal behavior shall be provided for all signals in the range SIGRTMIN to SIGRTMAX. Test Information: Signal 8 - received signal 38, but last signal was 45 and lowest numbered should be delivered first ********************************************************************
|
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 denied. The impact of this fault on the behavior of conforming applications using these APIs seems to us to be too significant to classify it as a minor fault.
|
Review Type |
SA Review |
Start Date |
null |
Completed |
null |
Status |
Complete |
Review Resolution |
No Resolution Given |
Review Conclusion |
Initially we refused this request as PG4R.00013, on considering the additional rationale inserted above and discussing it with the consultant, we now feel that a Temporary Waiver is possible.
|
Review Type |
SA Review |
Start Date |
null |
Completed |
null |
Status |
Complete |
Review Resolution |
Minor System Fault (MSF) |
Review Conclusion |
A Temporary Waiver is granted.
|
Problem Reporting System Options:
|