Minutes of the 5 June 2008 Teleconference Austin-433 Page 1 of 1
Submitted by Andrew Josey, The Open Group. June 6 , 2008
Attendees
Andrew Josey, The Open Group
Geoff Clare, The Open Group
Mark Brown, IBM, TOG OR
Nick Stoughton, USENIX, ISO/IEC OR
Don Cragun , Sun, PASC OR
Apologies
Ulrich Drepper, Red Hat
Larry Dwyer, HP
* Draft Status
The IEEE ballot passed with 100% approval. We need to act before August 15th
2008 to submit for approval. Andrew is awaiting confirmation from
the IEEE staff liaison for the next steps.
There has been some delay starting the ISO ballot, they wanted an
editable version of the document. Andrew has sent
them troff sources.
Andrew will shortly submit the document for Open Group approval,
targeting board approval at the late July meeting.
** Aardvark
We picked up on the 2004 aardvark reports.
XSH ERN 238 fputc SIGXFSZ Accept as marked below
As noted by the submitter, all stdio functions have this problem; not
just fputc().
All page and line numbers in this response refer to the XSH volume of
draft 5.1 of the revision.
Subclause 2.5.1 (Interaction of File Descriptors and Standard I/O
Streams) says that stdio functions have underlying functions (P493,
L16896-16899 and P492, L16855-16856). If the standard listed the
underlying functions for each stdio function, we could just point out
that the description of errors and signals could be derived by looking
at the descriptions of the underlying functions. But, there is no text
in the standard that explicitly lists the underlying functions for any
of the stdio functions.
Furthermore, the non-stdio functions ftruncate(), pwrite(), truncate(),
write(), and writev() (indirectly through its reference to write())
describe the delivery of the SIGXFSZ signal in their description
sections but not in their ERRORS sections. (This is inconsistent with
the way SIGPIPE is described in ESPIPE errors in the rest of the
standard.) However, the sending of the SIGPIPE signal is unconditional
when the file descriptor refers to a pipe, but a SIGXSFZ signal is not
sent if a partial write can be completed without crossing the process's
file size limit. Therefore, some text is needed in the description
section of many of these functions to describe the requirement to
perform a partial write to extend the file to the limit instead of
generating the signal. This also affects flushing of trace log files.
The following changes make the handling of SIGXFSZ consistent with the
way SIGPIPE is handled in stdio and non-stdio functions, and regularizes
the wording in EFBIG error clauses:
1. Add a new paragraph after P582, L20093:
If the request would cause the file size to exceed the soft
file size limit for the process and there is no room for any
bytes to be written, the request shall fail and the
implementation shall generate the SIGXFSZ signal for the
thread.
as the new last paragraph of the aio_write() DESCRIPTION section
with XSI shading.
2. Change the wording on P583, L20120-21023 from:
The following condition may be detected synchronously or
asynchronously:
[EFBIG] The file is a regular file, aiobcp->aio_nbytes is
greater than 0, and the starting offset in
aiobcp->aio_offset is at or beyond the offset maximum
in the open file description associated with
aiocbp->aio_fildes.
in the aio_write() ERRORS section to:
The following conditions may be detected synchronously or
asynchronously:
[EFBIG] The file is a regular file, aiobcp->aio_nbytes
is greater than 0, and the starting position is
greater than or equal to the offset maximum in
the open file description associated with
aiocbp->aio_fildes.
XSI [EFBIG] The file is a regular file, aiobcp->aio_nbytes
XSI is greater than 0, and there is no room for any
XSI bytes to be written at the starting position
XSI without exceeding the file size limit for the
XSI process. A SIGXFSZ signal shall also be sent to
XSI the thread.
[EFBIG] The file is a regular file, aiobcp->aio_nbytes
is greater than 0, and there is no room for any
bytes to be written at the starting position
without exceeding the implementation-defined
maximum file size.
with shading as indicated by the margin markings.
3. Add to end of P805, L26824 (2nd fclose() EFBIG error):
A SIGXFSZ signal shall also be sent to the thread.
with XSI shading.
4. Add to end of P844, L28042 (2nd fflush() EFBIG error):
A SIGXFSZ signal shall also be sent to the thread.
with XSI shading.
5. Add to end of P906, L30298 (2nd fputc() EFBIG error):
A SIGXFSZ signal shall also be sent to the thread.
with XSI shading.
6. Split P910, L30422-30423 (1st fputwc() EFBIG error) from:
CX [EFBIG] An attempt was made to write to a file that
CX exceeds the maximum file size or the file size
CX limit of the process.
to:
CX [EFBIG] An attempt was made to write to a file that
CX exceeds the maximum file size.
XSI [EFBIG] An attempt was made to write to a file that
XSI exceeds the file size limit of the process. A
XSI SIGXFSZ signal shall also be sent to the thread.
with shading as indicated by the margin markings.
7. Add to end of P938, L31434 (2nd fseek() EFBIG error):
A SIGXFSZ signal shall also be sent to the thread.
with XSI shading.
8. Add to end of P940, L31521 (2nd fsetpos() EFBIG error):
A SIGXFSZ signal shall also be sent to the thread.
with XSI shading.
9. Add a 3rd EFBIG error after P961, L32202:
[EFBIG] The length argument exceeds the file
size limit of the process. A SIGXFSZ signal shall also
be sent to the thread.
with XSI shading in the ftruncate() errors section.
10. Change:
"In addition to the errors returned by the lio_listio()
function, if"
on P1222, L40349 to:
"If"
in the lio_listio() ERRORS section.
11. Change:
"The error codes that can be set are the same as would be set
by a read() or write() function,"
on P1222, L40355-40356 to:
"The error codes that can be set are the same as would be set
if the I/O operation had been initiated by an aio_read() or
aio_write() function,"
in the lio_listio() ERRORS section.
12. Delete the ECANCELED error condition on P1223, L40358-40359 in the
lio_listio() ERRORS section. (This is covered by the ECANCELED
errors in the aio_read() and aio_write() ERRORS sections.)
13. Delete the EFBIG error condition on P1223, L40360-40363 in the
lio_listio() ERRORS section. (This is covered by the EFBIG error
in the aio_write() ERRORS section.)
14. Delete the EOVERFLOW error condition on P1223, L40365-40368 in the
lio_listio() ERRORS section. (This is covered by the EOVERFLOW
error in the aio_read() ERRORS section.)
15. Add a 2nd EFBIG error after P1412, L46279:
[EFBIG] The value of offset+len
exceeds the file size limit of the process. A
SIGXFSZ signal shall also be sent to the thread.
with XSI shading in the posix_fallocate() errors section.
16. Add a new paragraph after P1485, L48109:
For an active trace stream with log, if the value of the
log-max-size attribute associated with the
trace stream is larger than the soft file size limit of the
process and a trace flush operation attempts to create a file
larger than the file size limit, data up to the file size limit
shall be flushed, the request shall fail, and the
implementation shall generate the SIGXFSZ signal for the
thread.
with TRL and XSI shading in the posix_trace_create() page
DESCRIPTION section.
17. Add a 2nd EFBIG error after P1486, L48158:
[EFBIG] The trace log file has attempted to exceed the file
size limit of the process. A SIGXFSZ signal shall also
be sent to the thread.
with TRL and XSI shading in the posix_trace_flush() and
posix_trace_shutdown() shall fail errors section on the
posix_trace_create() page.
18. Add a 2nd EFBIG error after P2136, L67582:
[EFBIG] The length argument exceeds the file
size limit of the process. A SIGFSZ signal shall also
be sent to the thread.
with XSI shading in the truncate() errors section.
19. Split P2265, L71232-71234... from:
[EFBIG] An attempt was made to write a file that exceeds
the implementation-defined maximum file size
XSI or the file size limit of the process,
and there was no room for any bytes to be
written.
to:
[EFBIG] An attempt was made to write a file that exceeds
the implementation-defined maximum file size
and there was no room for any bytes to be
written.
XSI [EFBIG] An attempt was made to write a file that exceeds
XSI the file size limit of the process and there was
XSI no room for any bytes to be written. A SIGXFSZ
XSI signal shall also be sent to the thread.
with shading as indicated by the margin markings.
This should be submitted as an interpretation request and resolved as
"the standard is unclear on this issue", "concerns have been forwarded
to the sponsor" and should be fixed in TC1 of the revision.
XCU ERN 181 Accept
* Interpretations Status
http://www.opengroup.org/austin/interps/
We recently finalized interpretations 212-216, but interpretation
211 remains open, printf hexadecimal numbers.
Action: Andrew to send a note to Dave Korn re: 211
* Email discussions
An issue was raised on the reflector about no longer allowing
negative error numbers. Nick will send a response, along the lines of that
we align with the C Standard. If the change is going to be made then
it has to come from there first. The way to request a change is to
file a defect against the C Standard.
Next meeting
------------
The next calls will be June 26th, and the July 31 at 16:00 UK time.
to carry on with the aardvark
An IRC channel will be available for the meeting
irc://irc.freestandards.org #austin
irc://irc.freestandards.org/austin
ICAL: http://www.google.com/calendar/ical/nvctqtstkuni3fab9k3jqtrt4g@group.calendar.google.com/public/basic
XML: http://www.google.com/calendar/feeds/nvctqtstkuni3fab9k3jqtrt4g@group.calendar.google.com/public/basic