View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0000079 | 1003.1(2008)/Issue 7 | Base Definitions and Headers | public | 2009-06-29 09:17 | 2013-04-16 13:06 |
| Reporter | geoffclare | Assigned To | ajosey | ||
| Priority | normal | Severity | Objection | Type | Error |
| Status | Closed | Resolution | Accepted | ||
| Name | Geoff Clare | ||||
| Organization | The Open Group | ||||
| User Reference | |||||
| Section | 11.1.4 | ||||
| Page Number | 201 | ||||
| Line Number | 6531-6542 | ||||
| Interp Status | Approved | ||||
| Final Accepted Text | 0000079:0000178 | ||||
| Summary | 0000079: blocking SIGTT* signals | ||||
| Description | OBJECTION Enhancement Request Number 2 gwc:xxxxxxxxxxxxx Defect in XBD 11.1.4 (rdvk# 3) [gwc blocking SIGTT*] Fri, 12 Dec 2008 15:16:59 +0000 _____________________________________________________________________________ Section 11.1.4 Terminal Access Control states: "Any attempts by a process in a background process group to read from its controlling terminal cause its process group to be sent a SIGTTIN signal unless one of the following special cases applies: if the reading process is ignoring or blocking the SIGTTIN signal, or if the process group of the reading process is orphaned, the read() shall return -1, with errno set to [EIO] and no signal shall be sent." and: "Attempts by a process in a background process group to write to its controlling terminal shall cause the process group to be sent a SIGTTOU signal unless one of the following special cases applies: if TOSTOP is not set, or if TOSTOP is set and the process is ignoring or blocking the SIGTTOU signal, the process is allowed to write to the terminal and the SIGTTOU signal is not sent. If TOSTOP is set, and the process group of the writing process is orphaned, and the writing process is not ignoring or blocking the SIGTTOU signal, the write() shall return -1, with errno set to [EIO] and no signal shall be sent." The problem is that the text still refers to the process blocking SIGTTIN and SIGTTOU; it has not been updated to take account of threads. Established existing practice is that implementations just check whether the current thread is blocking the signal. The text should be updated to match. There is a similar problem in text describing the TOSTOP flag in section 11.2.5, and in text relating to SIGTTIN and SIGTTOU on the pages for stream I/O functions, read(), write() and each tc*() function in XSH. Also, the relevant EIO error is missing from the tcsetpgrp() page, and on the other tc*() pages it is under "may fail" but should be a "shall fail" (because it is a "shall fail" for write() and XBD section 11.1.4 says the tc*() functions are treated the same as write(), except for TOSTOP being ignored). | ||||
| Desired Action | At line 6531 change "if the reading process is ignoring or blocking the SIGTTIN signal," to "if the reading process is ignoring the SIGTTIN signal or the reading thread is blocking the SIGTTIN signal," At line 6539 change "and the process is ignoring or blocking the SIGTTOU signal," to "and the process is ignoring the SIGTTOU signal or the writing thread is blocking the SIGTTOU signal," At line 6540 change "If TOSTOP is set, and the process group of the writing process is orphaned, and the writing process is not ignoring or blocking the SIGTTOU signal," to "If TOSTOP is set, the process group of the writing process is orphaned, the writing process is not ignoring the SIGTTOU signal, and the writing thread is not blocking the SIGTTOU signal," At page 211 line 6962 section 11.2.5 change "Processes that are blocking or ignoring SIGTTOU signals are excepted and allowed to produce output, and the SIGTTOU signal shall not be sent." to "If the writing process is ignoring the SIGTTOU signal or the writing thread is blocking the SIGTTOU signal, the process is allowed to produce output, and the SIGTTOU signal shall not be sent." Cross-volume changes to XSH... page 805 line 26824 section fclose, page 844 line 28042 section fflush, page 906 line 30300 section fputc, page 910 line 30426 section fputwc, page 938 line 31438 section fseek, page 940 line 31523 section fsetpos, page 2266 line 71241 section write change "the process is neither ignoring nor blocking SIGTTOU, and the process group of the process is orphaned." to "the calling thread is not blocking SIGTTOU, the process is not ignoring SIGTTOU, and the process group of the process is orphaned." page 848 line 28184 section fgetc, page 854 line 28362 section fgetwc change "and either the process is ignoring or blocking the SIGTTIN signal or the process group is orphaned." to "and either the calling thread is blocking SIGTTIN or the process is ignoring SIGTTIN or the process group of the process is orphaned." page 1739 line 55497 section read change "the process is ignoring or blocking the SIGTTIN signal, or the process group is orphaned." to "and either the calling thread is blocking SIGTTIN or the process is ignoring SIGTTIN or the process group of the process is orphaned." page 2079 line 65840 section tcdrain, page 2081 line 65895 section tcflow, page 2083 line 65943 section tcflush, page 2090 line 66132 section tcsendbreak, page 2092 line 66203 section tcsetattr, page 2095 line 66280 section tcsetpgrp change "If the calling process is blocking or ignoring SIGTTOU signals" to "If the calling thread is blocking SIGTTOU signals or the process is ignoring SIGTTOU signals" page 2079 line 65848 section tcdrain, page 2081 line 65903 section tcflow, page 2083 line 65951 section tcflush, page 2090 line 66139 section tcsendbreak, page 2093 line 66215 section tcsetattr, page 2095 line 66288 section tcsetpgrp add "[EIO] The process group of the writing process is orphaned, the calling thread is not blocking SIGTTOU, and the process is not ignoring SIGTTOU." page 2079 line 65850 section tcdrain, page 2081 line 65905 section tcflow, page 2083 line 65953 section tcflush, page 2090 line 66141 section tcsendbreak, page 2093 line 66217 section tcsetattr delete "The [...] function may fail if: [EIO] The process group of the writing process is orphaned, and the writing process is not ignoring or blocking SIGTTOU." | ||||
| Tags | tc1-2008 | ||||
|
|
Interpretation response ------------------------ The standard states the requirements for the SIGTT* signals, and conforming implementations must conform to this. However, concerns have been raised about this which are being referred to the sponsor." Rationale: ------------- None. Notes to the Editor (not part of this interpretation): ------------------------------------------------------- Make the change suggested by the submitter |
| Date Modified | Username | Field | Change |
|---|---|---|---|
| 2009-06-29 09:17 | geoffclare | New Issue | |
| 2009-06-29 09:17 | geoffclare | Status | New => Under Review |
| 2009-06-29 09:17 | geoffclare | Assigned To | => ajosey |
| 2009-06-29 09:17 | geoffclare | Name | => Geoff Clare |
| 2009-06-29 09:17 | geoffclare | Organization | => The Open Group |
| 2009-06-29 09:17 | geoffclare | Section | => 11.1.4 |
| 2009-06-29 09:17 | geoffclare | Page Number | => 201 |
| 2009-06-29 09:17 | geoffclare | Line Number | => 6531-6542 |
| 2009-06-29 09:18 | geoffclare | Tag Attached: real bug in aardvark | |
| 2009-06-29 09:20 | geoffclare | Status | Under Review => Resolved |
| 2009-06-29 09:20 | geoffclare | Resolution | Open => Accepted |
| 2009-06-29 11:02 | geoffclare | Status | Resolved => Interpretation Required |
| 2009-08-06 15:42 | geoffclare | Tag Detached: real bug in aardvark | |
| 2009-08-06 15:43 | ajosey | Note Added: 0000178 | |
| 2009-08-11 16:33 |
|
Interp Status | => Pending |
| 2009-09-17 15:41 | nick | Interp Status | Pending => Proposed |
| 2009-10-09 16:53 | ajosey | Note Edited: 0000178 | |
| 2009-10-09 16:54 | ajosey | Interp Status | Proposed => Approved |
| 2009-10-09 16:54 | ajosey | Final Accepted Text | => 0000079:0000178 |
| 2010-09-20 09:20 | geoffclare | Tag Attached: tc1-2008 | |
| 2013-04-16 13:06 | ajosey | Status | Interpretation Required => Closed |