[FIX] web/database manager: fix MemoryError when restoring big databases #12376
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.
Description of the issue/feature this PR addresses:
When using the database manager to restore a very big zip with filestore
archive, a MemoryError can be raised by Python in the 'binascii' module
when Odoo web client is trying to convert the uploaded file to base6
Current behavior before PR:
Database restoration fails.
Desired behavior after PR is merged:
Database restoration succeeds.
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
When using the database manager to restore a very big zip with filestore
archive, a MemoryError can be raised by Python in the 'binascii' module
when Odoo web client is trying to convert the uploaded file to base64.
This fix creates the base64 encoded data in chunks to avoid this issue.
The same fix is also used in the 'db' service when it received the base
64 encoded data and tries to convert it back to a file.
Closes issue 680195