General rant against Python programmers

Robert Nichols <[email protected]> Sat, 6 Jan 2024 23:10:45 -0600
Newsgroups gmane.comp.sysutils.backup.rdiff-backup.general
Message-ID <[email protected]>
NOTE:    Starting backup operation from source path / to destination path /media/sysbk/omega-3x
Traceback (most recent call last):
   File "/usr/bin/rdiff-backup", line 11, in <module>
     load_entry_point('rdiff-backup==2.2.6', 'console_scripts', 'rdiff-backup')()
   File "/usr/lib64/python3.6/site-packages/rdiffbackup/run.py", line 35, in main
     sys.exit(main_run(sys.argv[1:]))
   File "/usr/lib64/python3.6/site-packages/rdiffbackup/run.py", line 108, in main_run
     ret_val |= conn_act.run()
   File "/usr/lib64/python3.6/site-packages/rdiffbackup/actions/backup.py", line 165, in run
     ret_code |= self._operate_backup(previous_time)
   File "/usr/lib64/python3.6/site-packages/rdiffbackup/actions/backup.py", line 184, in _operate_backup
     self.repo.apply(source_diffiter, previous_time)
   File "/usr/lib64/python3.6/site-packages/rdiffbackup/locations/repository.py", line 403, in apply
     self.base_dir, source_diffiter, self.incs_dir, previous_time)
   File "/usr/lib64/python3.6/site-packages/rdiffbackup/locations/_repo_shadow.py", line 125, in apply
     for diff in rorpiter.FillInIter(source_diffiter, dest_rpath):
   File "/usr/lib64/python3.6/site-packages/rdiff_backup/rorpiter.py", line 406, in FillInIter
     for rp in rpiter:
   File "/usr/lib64/python3.6/site-packages/rdiffbackup/locations/_dir_shadow.py", line 107, in get_diffs
     for dest_sig in dest_sigiter:
   File "/usr/lib64/python3.6/site-packages/rdiffbackup/locations/_repo_shadow.py", line 176, in _sigs_iterator
     for src_rorp, dest_rorp in cls.CCPP:
   File "/usr/lib64/python3.6/site-packages/rdiffbackup/locations/_repo_shadow.py", line 1235, in __next__
     source_rorp, dest_rorp = next(self.iter)
   File "/usr/lib64/python3.6/site-packages/rdiff_backup/rorpiter.py", line 364, in Collate2Iters
     relem2 = next(riter2)
   File "/usr/lib64/python3.6/site-packages/rdiffbackup/meta/ea.py", line 253, in join_iter
     eaidx=map(safestr.to_str, ea.index)))
AssertionError: Missing rorp for EA index '<map object at 0x7f2f23738780>'.

The above tells the end user pretty much nothing. My own opinion is that every traceback presented to the end user should be reported as a bug. When I was writing code at my job, I spent more time checking that the error legs produced meaningful messages than I did on the mainline code.

Now in this case I know that something I had been doing with (or "to", more accurately) the archive no doubt caused it, but I certainly don't know just what was wrong. FWIW, this archive had just passed a verify test for each of the 8 most recent increments. It's all being restored as I'm writing this.

-- 
Bob Nichols     "NOSPAM" is really part of my email address.
                 Do NOT delete it.