ironic-python-agent/releasenotes/notes/checksum-before-considering-download-completed-91cca9fef34d8cf5.yaml
Julia Kreger cb61a8d6c0 Retry on checksum failures
HTTP is a fun protocol.

Size is basically optional. And clients implicitly trust the server
and socket has transferred all the bytes. Which *really* means you
should always checksum.

But... previously we didn't checksum as part of retrying.

So if anything happened with python-requests, or lower level
library code or the system itself causing bytes to be lost off the
buffer, creating an incomplete transfer situation, then we wouldn't
know until the checksum.

So now, we checksum and re-trigger the download if there is a
failure of the checksum.

This involved a minor shift in the download logic, and resulted in
a needful minor fix to an image checksum test as it would loop for
90 seconds as well.

Closes-Bug: 2038934
Change-Id: I543a60555a2621b49dd7b6564bd0654a46db2e9a
2023-10-10 09:15:31 -07:00

12 lines
479 B
YAML

---
fixes:
- |
Fixes a failure case where downloads would not be retried when the
checksum fails verification. the agent now includes the checksum
activity as part of the file download operation, and will
automatically retry downloads when the checksum fails in
accordance with the existing download retry logic.
This is largely in response to what appears to be intermittent
transport failures at lower levels which we cannot otherwise
detect.