rdiff-backup crashed with UnpicklingError in reval(): invalid load key, 'y'.

Bug #764219 reported by Andrew Bennetts on 2011-04-18
This bug affects 1 person
Affects Status Importance Assigned to Milestone
rdiff-backup (Ubuntu)

Bug Description

Binary package hint: rdiff-backup

First time I tried running rdiff-backup since upgrading to natty. Remote end is an Ubuntu 10.10 server (maverick), with rdiff-backup 1.2.8-5ubuntu2.

From the error, my quick, uninformed guess is the different in Python versions is the problem.

ProblemType: Crash
DistroRelease: Ubuntu 11.04
Package: rdiff-backup 1.2.8-5ubuntu3
ProcVersionSignature: Ubuntu 2.6.38-8.42-generic-pae
Uname: Linux 2.6.38-8-generic-pae i686
Architecture: i386
Date: Mon Apr 18 14:25:29 2011
ExecutablePath: /usr/bin/rdiff-backup
InstallationMedia: Ubuntu 10.04 LTS "Lucid Lynx" - Release i386 (20100429)
InterpreterPath: /usr/bin/python2.7
ProcCmdline: /usr/bin/python /usr/bin/rdiff-backup -v 5 --exclude-other-filesystems --exclude-sockets --include-globbing-filelist-stdin --exclude / ::/ <email address hidden>::/mnt/backup/other/andrew/aihal
 PATH=(custom, no user)
PythonArgs: ['/usr/bin/rdiff-backup', '-v', '5', '--exclude-other-filesystems', '--exclude-sockets', '--include-globbing-filelist-stdin', '--exclude', '/', '::/', '<email address hidden>::/mnt/backup/other/andrew/aihal']
SourcePackage: rdiff-backup
Title: rdiff-backup crashed with UnpicklingError in reval(): invalid load key, 'y'.
UpgradeStatus: Upgraded to natty on 2011-04-11 (6 days ago)

Andrew Bennetts (spiv) wrote :
tags: removed: need-duplicate-check
Andrew Bennetts (spiv) wrote :
Download full text (7.7 KiB)

Oh, and here's the terminal output. This may be interesting because it appears to include the stderr from the server, so the traceback from the server process (the traceback with python2.6 in the paths rather than python2.7):

Sending back exception invalid load key, 'y'. of type <class 'cPickle.UnpicklingError'>:
  File "/usr/lib/pymodules/python2.7/rdiff_backup/connection.py", line 335, in answer_request
    result = apply(eval(request.function_string), argument_list)
  File "/usr/lib/pymodules/python2.7/rdiff_backup/connection.py", line 485, in readfromid
    if length is None: return cls.vfiles[id].read()
  File "/usr/lib/pymodules/python2.7/rdiff_backup/iterfile.py", line 302, in read
    if not self.addtobuffer(): break
  File "/usr/lib/pymodules/python2.7/rdiff_backup/iterfile.py", line 325, in addtobuffer
    try: currentobj = self.iter.next()
  File "/usr/lib/pymodules/python2.7/rdiff_backup/backup.py", line 103, in get_diffs
    for dest_sig in dest_sigiter:
  File "/usr/lib/pymodules/python2.7/rdiff_backup/iterfile.py", line 382, in next
    while not type: type, data = self._get()
  File "/usr/lib/pymodules/python2.7/rdiff_backup/iterfile.py", line 421, in _get
    if type in "oerh": return type, cPickle.loads(data)

Exception 'invalid load key, 'y'.' raised of class '<class 'cPickle.UnpicklingError'>':
  File "/usr/lib/pymodules/python2.6/rdiff_backup/robust.py", line 32, in check_common_error
    try: return function(*args)
  File "/usr/lib/pymodules/python2.6/rdiff_backup/rpath.py", line 105, in copy
    if rpin.isreg(): return copy_reg_file(rpin, rpout, compress)
  File "/usr/lib/pymodules/python2.6/rdiff_backup/rpath.py", line 133, in copy_reg_file
    return rpout.write_from_fileobj(rpin.open("rb"), compress = compress)
  File "/usr/lib/pymodules/python2.6/rdiff_backup/rpath.py", line 1195, in write_from_fileobj
    copyfileobj(fp, outfp)
  File "/usr/lib/pymodules/python2.6/rdiff_backup/rpath.py", line 62, in copyfileobj
    inbuf = inputfp.read(blocksize)
  File "/usr/lib/pymodules/python2.6/rdiff_backup/rpath.py", line 1415, in read
    def read(self, length = -1): return self.file.read(length)
  File "/usr/lib/pymodules/python2.6/rdiff_backup/iterfile.py", line 118, in read
    if not self.addtobuffer(): break
  File "/usr/lib/pymodules/python2.6/rdiff_backup/iterfile.py", line 133, in addtobuffer
    type, data = self.iwf._get()
  File "/usr/lib/pymodules/python2.6/rdiff_backup/iterfile.py", line 414, in _get
    if not self.buf: self.buf += self.file.read()
  File "/usr/lib/pymodules/python2.6/rdiff_backup/connection.py", line 518, in read
    return self.connection.VirtualFile.readfromid(self.id, length)
  File "/usr/lib/pymodules/python2.6/rdiff_backup/connection.py", line 450, in __call__
    return apply(self.connection.reval, (self.name,) + args)
  File "/usr/lib/pymodules/python2.6/rdiff_backup/connection.py", line 370, in reval
    if isinstance(result, Exception): raise result

Sending back exception invalid load key, 'y'. of type <class 'cPickle.UnpicklingError'>:
  File "/usr/lib/pymodules/python2.6/rdiff_backup/connection.py", line 335, in answer_request
    result = apply(eval(request.function_string), a...


Andrew Bennetts (spiv) wrote :

Rerunning as “python2.6 /usr/bin/rdiff-backup …” worked. So possibly running under python2.6 is a workaround, or possibly this bug is just intermittent and this run got lucky.

Andrew Bennetts (spiv) on 2011-04-24
visibility: private → public
Changed in rdiff-backup (Ubuntu):
importance: Undecided → Medium
Otto Kekäläinen (otto) wrote :


The new rdiff-backup 2.0 (written in Python 3) has recently been released. Please check out https://github.com/rdiff-backup/rdiff-backup and contribute in this open source project.

This bug is unlikely to apply to anymore to latest rdiff-backup 2.0, so it will be closed unless you want to help out and test if you can repeat the bug with the latest rdiff-backup.

Changed in rdiff-backup (Ubuntu):
status: New → Incomplete
Launchpad Janitor (janitor) wrote :

[Expired for rdiff-backup (Ubuntu) because there has been no activity for 60 days.]

Changed in rdiff-backup (Ubuntu):
status: Incomplete → Expired
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers