← Back to team overview

duplicity-team team mailing list archive

Re: [Question #631423]: Too many open files (again)

 

Question #631423 on Duplicity changed:
https://answers.launchpad.net/duplicity/+question/631423

edso proposed the following answer:
hey guys,

that looks wrong. using os.tmpfile() may resolve the issue, but it
removes the users control, where the temp files are created. this comes
up on list list regularly when user's small temp partitions overflow and
they ask why duplicity is not respecting their temp dir setting.

the python docs say

https://docs.python.org/2/library/os.html#os.tmpfile
"
... will be automatically deleted once there are no file descriptors for the file.
"
https://docs.python.org/2/library/tempfile.html#tempfile.TemporaryFile
"
... It will be destroyed as soon as it is closed (including an implicit close when the object is garbage collected). ...
"

Howard, could you please test if explicitly closing obsolete
TemporaryFiles instead in patchdir.py solves the issue as well?

the whole condition looks fishy anyway. it's tempfile modules job to
take care of crossplatform compatibility, no need for us to treat some
platforms different than others. ..ede/duply.net

On 09.05.2017 21:03, Howard Kaye wrote:
> Question #631423 on Duplicity changed:
> https://answers.launchpad.net/duplicity/+question/631423
> 
>     Status: Needs information => Open
> 
> Howard Kaye gave more information on the question:
> The problem seems to be something going on in the tempfile Python library.
> The following 1 line patch fixes the issue.
> 
> *** /Users/howie/duplicity-0.7.10/duplicity/patchdir.py 2015-09-10
> 09:03:43.000000000 -0400
> --- patchdir.py 2017-05-09 14:27:38.000000000 -0400
> ***************
> *** 496,502 ****
>               See https://bugs.launchpad.net/duplicity/+bug/670891 for
> discussion
>               of os.tmpfile() vs tempfile.TemporaryFile() w.r.t. Windows /
> Linux.
>               """
> !             if sys.platform.startswith(('cygwin', 'windows')):
>                   tempfp = os.tmpfile()
>               else:
>                   tempfp =
> tempfile.TemporaryFile(dir=tempdir.default().dir())
> --- 496,502 ----
>               See https://bugs.launchpad.net/duplicity/+bug/670891 for
> discussion
>               of os.tmpfile() vs tempfile.TemporaryFile() w.r.t. Windows /
> Linux.
>               """
> !             if sys.platform.startswith(('cygwin', 'windows', 'darwin')):
>                   tempfp = os.tmpfile()
>               else:
>                   tempfp =
> tempfile.TemporaryFile(dir=tempdir.default().dir())
> 
> 
> On Tue, May 9, 2017 at 11:47 AM, Kenneth Loafman <
> question631423@xxxxxxxxxxxxxxxxxxxxx> wrote:
> 
>> Your question #631423 on Duplicity changed:
>> https://answers.launchpad.net/duplicity/+question/631423
>>
>>     Status: Open => Needs information
>>
>> Kenneth Loafman requested more information:
>> Part of the problem is the number of gpg processes, you should have a
>> max of 2 or 3, not 13.  When you installed the current version, was
>> there perhaps an older version on the system, maybe from ports or
>> homebrew?  If so, did you uninstall that version?  The repo versions
>> have different paths than the tarball version.
>>
>> To double check, run "locate GnuPGInterface.py".  If you have it, you
>> probably have a very old duplicity hanging out there and will need to
>> uninstall and purge it.
>>
>> --
>> To answer this request for more information, you can either reply to
>> this email or enter your reply at the following page:
>> https://answers.launchpad.net/duplicity/+question/631423
>>
>> You received this question notification because you asked the question.
>>
>

-- 
You received this question notification because your team duplicity-team
is an answer contact for Duplicity.