Austin Group Defect Tracker

Aardvark Mark IV


Viewing Issue Simple Details Jump to Notes ] Issue History ] Print ]
ID Category Severity Type Date Submitted Last Update
0001669 [Issue 8 drafts] Shell and Utilities Comment Enhancement Request 2023-04-17 14:15 2023-07-03 10:44
Reporter geoffclare View Status public  
Assigned To
Priority normal Resolution Accepted  
Status Applied   Product Version Draft 3
Name Geoff Clare
Organization The Open Group
User Reference
Section ulimit
Page Number 3442
Line Number 117558
Final Accepted Text
Summary 0001669: Make the ulimit utility consistent with [gs]etrlimit() wrt XSI
Description In draft 3 getrlimit() and setrlimit() were moved from XSI to Base (except for RLIMIT_CPU and RLIMIT_FSIZE). Since the ulimit utility provides corresponding functionality in shells, it should be made consistent with [gs]etrlimit() as regards what features are XSI.

There is a slight complication - the file size limit is the default resource for ulimit when no resource option is specified, and it would be strange to have the default be XSI. The reason RLIMIT_FSIZE is XSI is because of the SIGXFSZ signal, so the obvious solution is to treat only the SIGXFSZ requirements as XSI and to make the ability to (get and) set the file size limit be a Base requirement. This will also affect the EFBIG errors for functions that write to files and a few other file-size-limit-related things.
Desired Action On page 398 line 13963 page <sys/resource.h>, remove XSI shading from RLIMIT_FSIZE.

On page 507 line 17919 section 2.3 Error Numbers (EFBIG), change:
The size of a file would exceed the maximum file size of an implementation or offset maximum established in the corresponding file description.
to:
The size of a file would exceed the implementation's maximum file size, the file size limit of the process, or the offset maximum established in the corresponding open file description.

On page 605 line 21517 section aio_write(), change:
[XSI]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.[/XSI]
to:
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 [XSI]and the implementation shall generate a SIGXFSZ signal for the thread[/XSI].

On page 606 line 21550 section aio_write(), change:
[XSI][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 file size limit for the process. A SIGXFSZ signal shall also be sent to the thread.[/XSI]
to:
[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 file size limit for the process. [XSI]A SIGXFSZ signal shall also be generated for the thread.[/XSI]

On page 868 line 29616 section exec, remove XSI shading from:
File size limit (see getrlimit() and setrlimit())

On page 868 line 29620 section exec, remove XSI shading from:
Resource limits

On page 868 line 29644 section exec, remove XSI shading from:
The saved resource limits in the new process image are set to be a copy of the process' corresponding hard and soft limits.

On page 896 line 30567 section fclose(), and
page 939 line 31953 section fflush(), and
page 1005 line 34499 section fputc(), and
page 1009 line 34648 section fputwc(), and
page 1042 line 35806 section fseek(), and
page 1045 line 35922 section fsetpos(), change:
[XSI][EFBIG]
An attempt was made to write a file that exceeds the file size limit of the process. A SIGXFSZ signal shall also be sent to the thread.[/XSI]
to:
[CX][EFBIG]
An attempt was made to write a file that exceeds the file size limit of the process.[/CX] [XSI]A SIGXFSZ signal shall also be generated for the thread.[/XSI]

On page 1066 line 36626 section ftruncate(), and
page 2283 line 74481 section truncate(), change:
[XSI]If the request would cause the file size to exceed the soft file size limit for the process, the request shall fail and the implementation shall generate the SIGXFSZ signal for the thread.[/XSI]
to:
If the request would cause the file size to exceed the soft file size limit for the process, the request shall fail [XSI]and the implementation shall generate a SIGXFSZ signal for the thread[/XSI].

On page 1066 line 36648 section ftruncate(), and
page 2283 line 74496 section truncate(), change:
[XSI][EFBIG]
The length argument exceeds the file size limit of the process. A SIGXFSZ signal shall also be sent to the thread.[/XSI]
to:
[EFBIG]
The length argument exceeds the file size limit of the process. [XSI]A SIGXFSZ signal shall also be generated for the thread.[/XSI]

On page 1172 line 40121 page getrlimit(), change:
[XSI]RLIMIT_FSIZE
This is the maximum size of a file, in bytes, that can be created by a process. If a write or truncate operation would cause this limit to be exceeded, SIGXFSZ shall be generated for the thread. If the thread is blocking, or the process is catching or ignoring SIGXFSZ, continued attempts to increase the size of a file from end-of-file to beyond the limit shall fail with errno set to [EFBIG].[/XSI]
to:
RLIMIT_FSIZE
This is the maximum size of a file, in bytes, that can be created by a process. If a write or truncate operation would cause this limit to be exceeded, [XSI]a SIGXFSZ signal shall be generated for the thread; if the thread is blocking, or the process is catching or ignoring SIGXFSZ,[/XSI] the operation shall fail with an [EFBIG] error.

On page 1555 line 52234 section posix_fallocate(), change:
[XSI][EFBIG]
The value of offset+len exceeds the file size limit of the process. A SIGXFSZ signal shall also be sent to the thread.[/XSI]
to:
[EFBIG]
The value of offset+len exceeds the file size limit of the process. [XSI]A SIGXFSZ signal shall also be generated for the thread.[/XSI]

On page 2423 line 78472 section write(), change:
for example, [XSI]the file size limit of the process or[/XSI] the physical end of a medium
to:
for example, the file size limit of the process or the physical end of a medium

On page 2423 line 78477 section write(), change:
[XSI]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.[/XSI]
to:
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 [XSI]and the implementation shall generate a SIGXFSZ signal for the thread[/XSI].

On page 2425 line 78551 section write(), change:
[XSI][EFBIG]
An attempt was made to write a file that exceeds the file size limit of the process, and there was no room for any bytes to be written. A SIGXFSZ signal shall also be sent to the thread.[/XSI]
to:
[EFBIG]
An attempt was made to write a file that exceeds the file size limit of the process, and there was no room for any bytes to be written. [XSI]A SIGXFSZ signal shall also be generated for the thread.[/XSI]

On page 2505 line 81712 section 2.13 Shell Execution Environment, remove XSI shading from:
File size limit as set by ulimit

On page 3442 line 117558 section ulimit, remove XSI shading from the entire SYNOPSIS except for the -t option.

On page 3442 line 117593 section ulimit, add XSI shading to the description of -t.
Tags applied_after_i8d3, issue8
Attached Files

- Relationships
related to 0000051Appliedajosey 1003.1(2008)/Issue 7 sh exit status not clear for built-in terminated by a signal 
related to 0001418Applied 1003.1(2016/18)/Issue7+TC2 Add options to ulimit to match get/setrlimit() 

There are no notes attached to this issue.

- Issue History
Date Modified Username Field Change
2023-04-17 14:15 geoffclare New Issue
2023-04-17 14:15 geoffclare Name => Geoff Clare
2023-04-17 14:15 geoffclare Organization => The Open Group
2023-04-17 14:15 geoffclare Section => ulimit
2023-04-17 14:15 geoffclare Page Number => 3442
2023-04-17 14:15 geoffclare Line Number => 117558
2023-04-17 14:22 geoffclare Relationship added related to 0000051
2023-04-17 14:23 geoffclare Relationship added related to 0001418
2023-06-12 15:41 Don Cragun Status New => Resolved
2023-06-12 15:41 Don Cragun Resolution Open => Accepted
2023-06-12 15:42 Don Cragun Tag Attached: issue8
2023-07-03 10:44 geoffclare Status Resolved => Applied
2023-07-03 10:45 geoffclare Tag Attached: applied_after_i8d3


Mantis 1.1.6[^]
Copyright © 2000 - 2008 Mantis Group
Powered by Mantis Bugtracker