So it looks like the issue is that NoSuchFile is getting propagated all the way to the top, rather than getting caught by _DirectPackAccess.get_raw_records() and being translated into: errors.RetryWithNewPacks.
And I'm guessing that is the case because:
if self._reload_func is None: raise
Which means that _DirectPackAccess isn't getting the reload function that _do_autopack is passing down. I think part of the reason for that is because of how we changed the packer code functionality in the 2.0 switchover. Namely it now goes via the get_record_stream() abstraction. Which does have its own retry functionality, but expects self._reload_func to be set before it raises RestartWithNewPacks.
So it looks like the issue is that NoSuchFile is getting propagated all the way to the top, rather than getting caught by _DirectPackAcce ss.get_ raw_records( ) and being translated into: errors. RetryWithNewPac ks.
raise
And I'm guessing that is the case because:
if self._reload_func is None:
Which means that _DirectPackAccess isn't getting the reload function that _do_autopack is passing down. I think part of the reason for that is because of how we changed the packer code functionality in the 2.0 switchover. Namely it now goes via the get_record_stream() abstraction. Which does have its own retry functionality, but expects self._reload_func to be set before it raises RestartWithNewP acks.
Still investigating.