client disk full bug
When a client gets a disk full its run will fail like:
grob-client: info: version 0.1.14.2 starting
grob-client: debug: exporting variable: GROB_OTP
grob-client: debug: exporting variable: GROB_TUNNEL_PORT
grob-client: debug: BORG_RSH=/usr/libexec/grob/grob-client-helper-tcp
grob-client: debug: now launching: borg create --stats --one-file-system --exclude-caches --stats ssh://nop//srv/grobdata/grobrepo-tilab-infra/borg_repo::daily_2020-01-17_ansi.tilab.tuwien.ac.at_root /
Local Exception
Traceback (most recent call last):
File "/usr/lib64/python3.6/site-packages/borg/archiver.py", line 4501, in main
exit_code = archiver.run(args)
File "/usr/lib64/python3.6/site-packages/borg/archiver.py", line 4433, in run
return set_ec(func(args))
File "/usr/lib64/python3.6/site-packages/borg/archiver.py", line 166, in wrapper
return method(self, args, repository=repository, **kwargs)
File "/usr/lib64/python3.6/site-packages/borg/archiver.py", line 573, in do_create
create_inner(archive, cache)
File "/usr/lib64/python3.6/site-packages/borg/archiver.py", line 538, in create_inner
archive.save(comment=args.comment, timestamp=args.timestamp)
File "/usr/lib64/python3.6/site-packages/borg/archive.py", line 516, in save
self.cache.commit()
File "/usr/lib64/python3.6/site-packages/borg/cache.py", line 583, in commit
self.chunks.write(fd)
File "src/borg/hashindex.pyx", line 120, in borg.hashindex.IndexBase.write
File "/usr/lib64/python3.6/site-packages/borg/crypto/file_integrity.py", line 29, in write
return self.fd.write(data)
File "/usr/lib64/python3.6/site-packages/borg/crypto/file_integrity.py", line 74, in write
n = super().write(data)
File "/usr/lib64/python3.6/site-packages/borg/crypto/file_integrity.py", line 29, in write
return self.fd.write(data)
OSError: [Errno 28] No space left on device
Platform: Linux ansi 3.10.0-1062.9.1.el7.x86_64 #1 SMP Fri Dec 6 15:49:49 UTC 2019 x86_64
Linux: CentOS Linux 7.7.1908 Core
Borg: 1.1.10 Python: CPython 3.6.8 msgpack: 0.5.6
PID: 1584 CWD: /home/grobclient
sys.argv: ['/usr/bin/borg', 'create', '--stats', '--one-file-system', '--exclude-caches', '--stats', 'ssh://nop//srv/grobdata/grobrepo-tilab-infra/borg_repo::daily_2020-01-17_ansi.tilab.tuwien.ac.at_root', '/']
SSH_ORIGINAL_COMMAND: '/usr/libexec/grob/grob-client'
grob: backup_drive failed(2): ansi.tilab.tuwien.ac.at root daily_2020-01-17_ansi.tilab.tuwien.ac.at_root
After fixing disk space redoing fails with:
grob-client: info: version 0.1.14.2 starting
grob-client: debug: exporting variable: GROB_OTP
grob-client: debug: exporting variable: GROB_TUNNEL_PORT
grob-client: debug: BORG_RSH=/usr/libexec/grob/grob-client-helper-tcp
grob-client: debug: now launching: borg create --stats --one-file-system --exclude-caches --stats ssh://nop//srv/grobdata/grobrepo-tilab-infra/borg_repo::daily_2020-01-17_ansi.tilab.tuwien.ac.at_root /
Archive daily_2020-01-17_ansi.tilab.tuwien.ac.at_root already exists
grob: backup_drive failed(2): ansi.tilab.tuwien.ac.at root daily_2020-01-17_ansi.tilab.tuwien.ac.at_root
So maybe if already exists happens after a failure then rename the failed archive to something if that does not already exist.