Austin/386
Minutes of the 13th Plenary Meeting of the Austin Group
Sep 04 - 07, 2007, The Open Group, Reading, England.
Attendees
Name | Affiliation | Role |
Andrew Josey | The Open Group | Chair |
Nick Stoughton | Usenix | SC 22 OR, Secretary |
Don Cragun | Sun Microsystems | IEEE OR |
Larry Dwyer | HP (teleconference, full) | The Open Group alternate |
Mark Brown | IBM (teleconference, full) | The Open Group OR |
Ulrich Drepper | Red Hat | |
Mats Wichmann | Intel | |
Geoff Clare | The Open Group | |
Cathy Fox | The Open Group | |
Howard Hinnant | Apple (teleconference, part) | |
Herb Sutter | Microsoft (teleconference, part) | |
Lawrence Crowl | Google (teleconference, part) | |
Hans Boehm | HP (teleconference, part) |
Andrew Josey called the thirteenth meeting (a.k.a. Austin/M14, since this counting includes a teleconference) of the Austin Group to order at 9:33 am Tuesday, September 4th at The Open Group facility, Reading, UK.
Meeting Goals
The goal of this meeting is to review draft 3 comments for the 200x revision, and continue processing inbound defect reports so that they can be addressed in draft 4.
The main part of the meeting will be spent doing issue resolution based on Aardvark comments submitted against Draft 3 and also those outstanding on the 2004 edition of the standard. Attendees are assumed to be familiar with the proposed dispositions for the aardvark prior to the attendance of the meeting - these will not be discussed unless there is some disagreement with the proposal.
All the participants introduced themselves.
The agenda was approved as published, with the addition of a discussion on approved interpretations/interpretations status (under item 5, Status Reports).
Minutes of the last plenary meeting (Austin/343, Feb 27-Mar 1, 2007) were reviewed. Approved with no objections.
SD1 Issue 14. ISO have now conducted a letter ballot to combine the four parts into one. This passed. Resolved:The new revision will be a single part.
SD1 Issue 16. The name in the most recent draft was "POSIX.1-200x", and no ballot comments have been received in opposition. Resolved: Use POSIX.1-200x.
SD2 - no updates.
Once again, SC 22 has received a complaint from Canada, this time about meeting notice. Nick has responded to this, and will discuss it at the SC 22 plenary in Singapore (September 22-25).
No updates.
See attendance list above.
Austin Group Status; 96 aardvarks submitted against D3.
Organizational Reps Status
Change It is unspecified whether directory searches are permitted based on whether the file was opened with search permission or on the current permissions of the directory underlying the file descriptor. To If the file descriptor was opened without O_SEARCH the function shall check whether directory searches are permitted using the current permissions of the directory underlying the file descriptor. If the file descripter was opened with O_SEARCH the function shall not perform the check.
Any business brought forward from the teleconference agenda; nothing brought forward from teleconferences. Reviewed recent email discussions: question about strptime and leading whitespace (sequence 10920). We need an aardvark to start an interpretation request. ACTION Mark Brown to talk to Martin Sebor to initiate an aardvark on strptime().
Eric Blake had an issue with getline/getdelim (sequence 10919). We will accept a late aardvark on this. ACTION Mark Brown to ask Eric Blake to submit an aardvark with proposed wording changes for getdelim() and getline().
Null pointer v NULL. ACTION Nick to raise null pointer issue as a liaison question with ISO-C.
Howard Hinnant joined the call. Howard is the principal author of the thread paper. There is strong consensus in the C++ committee for the threads proposal to include cancellation. However, the discussion has not yet decided on what should be cancellation points.
Hans Boehm argued that it is required to get clean shutdown of processes. Ulrich countered that if we specify it too early and get it wrong, this is worse than not specifying it. We need to be able to give programs good guidelines on how to shut down cleanly. However situation is worse if we have incompatible thread libraries.
There is considerable opposition to having OS level changes to existing POSIX interfaces to support a new language feature. We should leave the specification of cancellation undefined/unspecified. Lawrence points out that C++ has been tasked with solving the current thread problems, caused because the language does not include threads. Dealing with correct stack unwinding at thread shutdown, including any resource de-allocation. This is a high frequency event. We should do something, and we should specify cancellation, and we should make it work.
Hans adds that process shutdown is just one of the aspects of this problem; thread shutdown is a pre-requisite of well defined process shutdown.
Ulrich:Are we talking about async or sync shutdown? Only need to worry about sync thread shutdown. What we want is the POSIX cancellation model, using exceptions, but they must rethrow. This gives us all we need.
Hans: nobody is proposing async shutdown.
Ulrich: only issue is the POSIX/C++ binding, which there is now a WG for. Does not belong in the C++ language.
Hans: it needs to be in the C++ standard itself, since you can't write a multi-threaded C++ program without it.
Ulrich: it can be specified using existing functionality. Use throw(). No library feature needed. We should agree to disagree. We do not need 100% of all functionality in the standard. In reality, there are few enough choices in how to do it. Implementations should be free to implement cancellation as appropriate.
Lawrence: standard needs to cover things that are high occurence ... and cancellation is such. There may be room to do less than the current proposal, but it needs to remain.
Ulrich: what is the problem with shutting down a thread? There is a defined mechanism for stack unwinding: Exceptions. But pthread_cancel requires that exceptions cannot be caught and not rethrown. This is the only problem. Have a convention, established practice, on shutting down, but not an incorrect standard.
Lawrence would like Ulrich to write up the difficulties for a naive programmer.
Ulrich threads are for sophisticated, system level programmers, not naive ones. Need higher level functions, like OpenMP, for parallelism for naive programmers.
Lawrence concedes this point. Still need conventions for system programmers to cleanly shutdown threads. Can Ulrich write up instructions on how to shutdown a multi-threaded program that has global variables needing destruction. ACTION Ulrich and Nick to write a set of guidelines on how to shutdown a multi-threaded C++ program with global variables prefereably for the Kona mailing (Sep 9).
Ulrich: The problem is that the complete solution is not known at this point. We can get adequate guidelines, not perfect ones.
Lawrence: people can live with a few spurious crashes. But not with frequent ones. (Ulrich disagrees). We would be happy with a 90% solution. What we have right now is a 1% solution.
Don: We can't make unconforming programs conform by adding a new feature. If the feature isn't there, then programs can be written that work. If the feature is there, it will not be implementable with the current state of the art.
Lawrence: don't pre-suppose that WG21 is uncooperative.
Howard: nothing has been decided.
ACTION: Nick & Herb to develop a C++/POSIX liaison update for SC 22.
Friday update: AGREED: Ask ISO/IEC JTC 1/SC 22 to request that WG 21 continue to work with their POSIX liaisons to resolve the difficulties represented in their thread API proposal to the mutual satisfaction of both working groups before any FCD ballot of C++0x commences.
Draft 3 was "complete", and was balloted by IEEE, ISO/IEC and by The Austin Group general membership. While aardvark counts are not as high as against some previous drafts (e.g. D5 in 2000/2001), there are a good number to work through this week.
In most cases, the agreed disposition for each of these aardvark is in the relevant aardvark review document. These minutes capture only the highest level information.
sched.h p305 At line 10596, add: The <sched.h> header shall define the following types: <PS>pid_t As described in <sys/types.h>.</PS> <SS|TSP>time_t As described in <sys/types.h>.</SS|TSP> struct timespec As described in <time.h>. spawn.h At line 11103, add: The <spawn.h> header shall define the following types: mode_t As described in <sys/types.h>. pid_t As described in <sys/types.h>. sigset_t As described in <signal.h>. The tag sched_param shall be declared as naming an incomplete structure type, the contents of which are described in the header <sched.h>.
Don Cragun submitted an aardvark against the 2004 edition on ENAMETOOLONG. See mail sequence 2508 . Now filed as 2004 XBD ERN 100. Essential idea is to make ENAMETOOLONG an optional error, and allow implementations to handle long names if they are able to, without having a specific maximum. Important point is that if the user supplies a buffer and a length, then if length > PATH_MAX it is OK. If the buffer has an implied maximum size of PATH_MAX, even if the implementation can handle longer names, it will never give back morethan PATH_MAX. Geoff has an issue with consistency of name lengths across multiple interfaces. Agree in principle that this aardvark is worth having, so it will be at least Accept as marked.
Last para for 4.12 should be:
Accept as marked. Interp standard is clear.Pathname resolution for a given pathname shall yield the same results when used by any interface in this standard as long as there are no changes to any files evaluated during pathname resolution for the given pathname between resolutions.
Possible solutions:
Choice 2 is probably the cleanest, but if there are any implementations that don't support IXANY then they would have to change. If we can't go with 2 then 1 and 3 are available as compromises.
AGREED: to move the IXANY flag and associated functionality from XSI to base.
NOTE this is a fairly subtle change, it is possible that reviewers may miss it. Cathy will add it to the reviewers notes.
Accept this proposal as resolution for AI-016. Standard is ambiguous.
We have moved to a single volume format successfully. Still a few small bugs left in the toolchain, but mostly working as expected.
POSIX Certification Status Report
Andrew presented a status report on certification (Austin/384).
Work Plan Update
See work plan update above. face-to-face in February 2008. Propose Open Group offices in San Francisco, USA, Feb 26-29.
The meeting adjourned at 4:04pm, Friday, September 7.