View Issue Details

IDProjectCategoryView StatusLast Update
00000791003.1(2008)/Issue 7Base Definitions and Headerspublic2013-04-16 13:06
Reportergeoffclare Assigned Toajosey  
PrioritynormalSeverityObjectionTypeError
Status ClosedResolutionAccepted 
NameGeoff Clare
OrganizationThe Open Group
User Reference
Section11.1.4
Page Number201
Line Number6531-6542
Interp StatusApproved
Final Accepted Text0000079:0000178
Summary0000079: 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."

Tagstc1-2008

Activities

ajosey

2009-08-06 15:43

manager   bugnote:0000178

Last edited: 2009-10-09 16:53

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

Issue History

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 Don Cragun 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