You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I've observed errors when some mirrors are not completely synced. The
library tries to download a file, but gets a 404 error. This means we
need to retry with another mirror, not crash out. This was crashing
because setting `err` in `clean_transcode()` was firing the assert at
the start of `truncate_transfer_file()`. Note this failure mode was most
common with 404's, but any transfer error could likely have turned
fatal, for invalid reasons.
We use `cleanup_transcode()` in two contexts.
1. Within `check_transfer_statuses()`. The first call here happens
during a normal download after `check_finished_transfer_status()`.
The cleanup checks for errors, and any here will be flagged as a
`transfer_err` (not a general, err).
2. In 3 other places where an error has already occurred. We need to
wait for the program to exit (and it should stop due to a SIGPIPE
or short read from stdin), but we don't need to set an error because
something already is handling one. It doesn't matter that the
transcoder crashed because we're not going to use the output anyway,
and we are likely to retry.
0 commit comments