Skip to content

Retry on Input/Output error #190

@Profpatsch

Description

@Profpatsch

I’ve got an external drive with a very flaky USB-connector that likes to unmount itself when touched in the wrong way and then quickly remount.

Though when that happens attic check instantly crashes with an OSError and attic backup is starting to skip files.

I think it would be wise to retry for an amount of time in that case.

Full traceback for attic check:

Traceback (most recent call last):
  File "/usr/bin/attic", line 3, in <module>
    main()
  File "/usr/lib/python3.4/site-packages/attic/archiver.py", line 727, in main
    exit_code = archiver.run(sys.argv[1:])
  File "/usr/lib/python3.4/site-packages/attic/archiver.py", line 717, in run
    return args.func(args)
  File "/usr/lib/python3.4/site-packages/attic/archiver.py", line 80, in do_check
    if repository.check(repair=args.repair):
  File "/usr/lib/python3.4/site-packages/attic/repository.py", line 268, in check
    objects = list(self.io.iter_objects(segment))
  File "/usr/lib/python3.4/site-packages/attic/repository.py", line 500, in iter_objects
    rest = fd.read(size - self.header_fmt.size)
OSError: [Errno 5] Input/output error

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions