On Fri, Jan 26, 2018 at 03:45:22PM +0000, Peter Hillier-Brook wrote:
> On 26/01/18 10:47, Felipe Salvador wrote:
> >     $ while true; do echo a>>a; done
> > 
> > makes bash crash when file size is reached

> A crash is always a bug. I suggest that you report it as such - if not
> already reported.

Yes, it's a bug in his script.  Not in bash.

Resource limits are quite low-level; they are implemented as kernel
system calls (see setrlimit(2)).  Processes which violate a resource
limit are signalled by the kernel.

In the case of RLIMIT_FSIZE:

              This is the maximum size of files that the process  may  create.
              Attempts  to  extend a file beyond this limit result in delivery
              of a SIGXFSZ signal.   By  default,  this  signal  terminates  a
              process,  but  a process can catch this signal instead, in which
              case the relevant  system  call  (e.g.,  write(2),  truncate(2))
              fails with the error EFBIG.

If the OP wants the script to exit gracefully, then a signal trap
must be set up.  Otherwise, the shell is simply terminated.

Reply via email to