GNU bug report logs - #17470
[PATCH] sort: rotate on ENOSPC while creating tmp files

Previous Next

Package: coreutils;

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):

From: Pádraig Brady <P <at> draigBrady.com>
To: Azat Khuzhin <a3at.mail <at> gmail.com>
Cc: 17470 <at> debbugs.gnu.org, Paul Eggert <eggert <at> cs.ucla.edu>
Subject: Re: bug#17470: [PATCH] sort: rotate on ENOSPC while creating tmp files
Date: Mon, 12 May 2014 00:22:45 +0100
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.