On 11/04/2026 04:29, Collin Funk wrote:
This avoids the following behavior:

     $ strace -e silence=exit -e trace=unlink,rmdir \
         mktemp -d > /dev/full
     unlink("/tmp/tmp.ZBuPmS9ZGD") = -1 EISDIR (Is a directory)
     rmdir("/tmp/tmp.ZBuPmS9ZGD")  = 0
     mktemp: write error: No space left on device

In the above invocation we know that we created a directory, so we
should not remove a regular file that must have been created by another
process:

     $ strace -e silence=exit -e trace=unlink,rmdir \
         ./src/mktemp -d > /dev/full
     rmdir("/tmp/tmp.hGbME1HmJr") = 0
     mktemp: write error: No space left on device

* src/mktemp.c (main): Prefer rmdir and unlink depending on whether we
created a directory or regular file.

Makes sense.
Note we should already remove "remove" from bootstrap.conf as part of this.

cheers,
Padraig

Reply via email to