GNU bug report logs -
#17470
[PATCH] sort: rotate on ENOSPC while creating tmp files
Previous Next
Reported by: Azat Khuzhin <a3at.mail <at> gmail.com>
Date: Sun, 11 May 2014 20:45:02 UTC
Severity: normal
Tags: patch, wontfix
Done: Pádraig Brady <P <at> draigBrady.com>
Bug is archived. No further changes may be made.
Full log
Message #14 received at 17470 <at> debbugs.gnu.org (full text, mbox):
tag 17470 wontfix
close 17470
stop
On 05/11/2014 11:25 PM, Paul Eggert wrote:
> Azat Khuzhin wrote:
>
>> + fd = mkstemp (file);
>> +
>> + if (errno != ENOSPC || temp_dir_index == start_dir_index)
>
> This assumes that when mkstemp succeeds then errno != ENOSPC, which is not necessarily true.
>
> More generally, it appears that with the patch 'sort' checks whether one can create a file, but 'sort' will still respond poorly if a write to a temp file fails due to filesystem space exhaustion.
Yes I agree.
Now one could use fallocate() where available to preallocate a given amount of space,
however allocation management can be done outside of sort(1). As a rule of thumb,
if it's possible to implement outside of a particular functional unit, then it
probably should be done outside.
In this case there are various schemes for coalescing multiple storage locations
to a single mount point (mhddfs, lvm, raid, ...), and since these have a more
system wide view, it would be better to avoid implementing similar but limited
logic within sort.
thanks,
Pádraig.
This bug report was last modified 11 years and 39 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.