agnos updater: set decompress max_length #33320
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This fixes the "MemoryError: Unable to allocate output buffer." when flashing big raw images. Write-up here.
The following changes have been implemented.
noop
flashes until no more data is returned - this way any data that remains inself.buf
aftereof
is detected gets flashed in every case - since the loop will call read until buffer is emptymax_length
is now set tolength
(max_length=-1
if not set) - so the output of decompress will never be more than the size of the returnb''
whenneeds_input=false
- when it has more data to decompress after the previous lengtheof=True
then we reached the end of file and the process stopsFlashing time for the sparse system image is similar (a little faster with
max_length=length
).Flashing time for non-sparse raw 10GB image is ~5min.