Fix "long too large to convert to int" problem found by Jo.

Traceback (most recent call last):
  File "/usr/lib/python2.6/dist-packages/cliapp/app.py", line 135, in _run
    self.process_args(args)
  File "/usr/lib/python2.6/dist-packages/obnamlib/app.py", line 116, in process_args
    cliapp.Application.process_args(self, args)
  File "/usr/lib/python2.6/dist-packages/cliapp/app.py", line 275, in process_args
    method(args[1:])
  File "/usr/lib/python2.6/dist-packages/obnamlib/plugins/backup_plugin.py", line 80, in backup
    self.backup_roots(roots)
  File "/usr/lib/python2.6/dist-packages/obnamlib/plugins/backup_plugin.py", line 136, in backup_roots
    self.backup_metadata(pathname, metadata)
  File "/usr/lib/python2.6/dist-packages/obnamlib/plugins/backup_plugin.py", line 250, in backup_metadata
    self.repo.create(pathname, metadata)
  File "/usr/lib/python2.6/dist-packages/obnamlib/repo.py", line 509, in create
    encoded = obnamlib.encode_metadata(metadata)
  File "/usr/lib/python2.6/dist-packages/obnamlib/metadata.py", line 200, in encode_metadata
    len(metadata.md5 or ''))
error: long too large to convert to int
  • hypothesis: overflows int on the way to the struct, on 32-bit
  • wrote script to test hypothesis, but proved it wrong: the limit where struct gives error is 2**64-1, as is proper, so the problem is something else
  • talk to directhex to extract more information, possibly add logging to pinpoint the value

--liw

Can't seem to reproduce this, but it was hopefully related to things now replaced by our own lstat wrapper. If you see this, re-open and add a way to reproduce. --liw

done