duplicity-talk
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Duplicity-talk] RuntimeError: maximum recursion depth exceeded


From: Alexander Skwar
Subject: Re: [Duplicity-talk] RuntimeError: maximum recursion depth exceeded
Date: Fri, 11 May 2007 00:40:56 +0200
User-agent: Thunderbird 1.5.0.10 (X11/20070323)

Kenneth Loafman schrieb:
> Alexander Skwar wrote:
>> 
>> Not being a python export, the error message "RuntimeError: maximum 
>> recursion depth exceeded"
>> seems to indicate to me, that duplicity called some function recursively
>> and did so, until a "maximum recursion depth" is reached. Does duplictiy
>> build a connection to the FTP server in that "loop"?
> 
> Yes, it is doing exactly that.  The function error_wrap is recursing on
> itself with no counter in place to stop it.  Not sure what the recursion
> limit is in Python, but it looks like it did close to 500 recursions
> before it finally died, trying to connect to the server.  Since it could
> never get a connection, it finally died.

Yep, it could not get a connection, as the hoster seems to have a upper
limit of max. connections from one IP. It seems to be quite low. Have
a look at line 164721. From there on, started to get errors. For some
reason, it seems as if duplicity thought, that the connection timed
out, while in reality it did not.

> I'll keep this in mind as I try to improve some of the error handling.
> 
> Perhaps you could try this run again tonight to see if it fails again?

I tested again during the day. This time, it failed with:

Getting delta of (('home', 'u-digitalprojects-com', 'web', 'html', 'bendig', 
'html', 'catalog', 'images', 'td-030-M0986013220.jpg') 
/.backup/home/u-digitalprojects-com/web/html/bendig/html/catalog/images/td-030-M0986013220.jpg
 reg) and None
Generating delta - new file: 
home/u-digitalprojects-com/web/html/bendig/html/catalog/images/td-030-M0986013220.jpg
Traceback (most recent call last):
  File "/usr/bin/duplicity", line 373, in ?
    if __name__ == "__main__": main()
  File "/usr/bin/duplicity", line 366, in main
    if not sig_chain: full_backup(col_stats)
  File "/usr/bin/duplicity", line 142, in full_backup
    bytes_written = write_multivol("full", tarblock_iter, globals.backend)
  File "/usr/bin/duplicity", line 78, in write_multivol
    globals.gpg_profile)
  File "/usr/lib/python2.4/site-packages/duplicity/gpg.py", line 220, in 
GPGWriteFile
    if cursize < target_size: top_off(target_size - cursize, to_gpg_fp)
  File "/usr/lib/python2.4/site-packages/duplicity/gpg.py", line 192, in top_off
    assert misc.copyfileobj(incompressible_fp, to_gpg_fp, bytes) == bytes
  File "/usr/lib/python2.4/site-packages/duplicity/misc.py", line 159, in 
copyfileobj
    outfp.write(buf)
IOError: [Errno 32] Broken pipe
+ '[' -x /home/askwar/.ftplicity/post ']'
+ exit 1

I ran it with verbosity=9. You can find the compressed log at
http://alexander.skwar.name/~askwar/stuff/Thu%20May%2010%2016:13:40%20CEST%202007.txt.bz2
(Size: ~2.7MB, uncompressed: ~85 megs). I edited the passwords
out of the log.

Why "broken pipe"? It's impossible that the files on the disk
changed - reason: I'm backing up from LVM snapshots. IOW: I
first create a snapshot of the LVM lv, mount that snapshot LV
somewhere, and make a backup of it. The source of the backup
is read-only mounted.

Alexander Skwar
-- 
The end of labor is to gain leisure.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]