-
-
Notifications
You must be signed in to change notification settings - Fork 768
Open
Labels
Description
module
website_sale
describe the bug
when running a migration from 12.0 to 13.0 with many product.image
records, the migration fails after displaying many MemoryError
errors.
to reproduce
affected versions: upgrade to 13.0
steps to reproduce the behavior:
- have a database in version 12.0 with
website_sale
installed and having manyproduct.image
records (in my case, 21k). - run openupgrade to upgrade to 13.0.
expected behavior
the database and its filestore should be correctly upgraded to 13.0.
additional context
log:
2025-01-15 17:21:08,640 1 INFO odoo-upgrade odoo.modules.migration: module website_sale: Running migration [13.0.1.0>] post-migration
2025-01-15 17:21:08,643 1 INFO odoo-upgrade OpenUpgrade: website_sale: post-migration script called with version 12.0.1.0
2025-01-15 17:21:08,643 1 INFO odoo-upgrade odoo.models: Computing parent_path for table product_public_category...
2025-01-15 17:21:08,659 1 DEBUG odoo-upgrade OpenUpgrade: 0 rows affected after 0:00:00.003386 running
UPDATE product_image
SET name = 'Image ' || id
WHERE name IS NULL
2025-01-15 17:23:14,217 1 ERROR odoo-upgrade post-migration: Error while recovering product.image>image for 19497: MemoryError()
2025-01-15 17:23:14,234 1 ERROR odoo-upgrade post-migration: Error while recovering product.image>image for 19496: MemoryError()
2025-01-15 17:23:14,235 1 ERROR odoo-upgrade post-migration: Error while recovering product.image>image for 19495: MemoryError()
2025-01-15 17:23:14,236 1 ERROR odoo-upgrade post-migration: Error while recovering product.image>image for 19494: MemoryError()
2025-01-15 17:23:14,238 1 ERROR odoo-upgrade post-migration: Error while recovering product.image>image for 19493: MemoryError()
2
(…)
2025-01-15 17:23:20,981 1 ERROR odoo-upgrade post-migration: Error while recovering product.image>image for 15232: MemoryError()
2025-01-15 17:23:20,982 1 ERROR odoo-upgrade post-migration: Error while recovering product.image>image for 15231: MemoryError()
2025-01-15 17:23:20,983 1 ERROR odoo-upgrade post-migration: Error while recovering product.image>image for 15230: MemoryError()
2025-01-15 17:23:21,010 1 ERROR odoo-upgrade OpenUpgrade: website_sale: error in migration script /odoo_env/src/openupgrade/addons/website_sale/migrations/13.0.1.0/post-migration.py:
2025-01-15 17:23:21,010 1 ERROR odoo-upgrade OpenUpgrade:
Traceback (most recent call last):
File "/odoo_env/src/openupgrade/odoo/api.py", line 748, in get
value = self._data[field][record._ids[0]]
KeyError: 139810
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/odoo_env/src/openupgrade/odoo/fields.py", line 1038, in __get__
value = env.cache.get(record, self)
File "/odoo_env/src/openupgrade/odoo/api.py", line 754, in get
raise CacheMiss(record, field)
odoo.exceptions.CacheMiss: ('ir.attachment(139810,).datas', None)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/odoo_env/src/openupgrade/odoo/api.py", line 748, in get
value = self._data[field][record._ids[0]]
KeyError: 139810
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/odoo_env/src/openupgrade/odoo/fields.py", line 1038, in __get__
value = env.cache.get(record, self)
File "/odoo_env/src/openupgrade/odoo/api.py", line 754, in get
raise CacheMiss(record, field)
odoo.exceptions.CacheMiss: ('ir.attachment(139810,).store_fname', None)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/odoo_env/src/openupgrade/odoo/fields.py", line 1147, in compute_value
records._compute_field_value(self)
File "/odoo_env/src/openupgrade/odoo/models.py", line 4021, in _compute_field_value
getattr(self, field.compute)()
File "/odoo_env/src/openupgrade/odoo/addons/base/models/ir_attachment.py", line 199, in _compute_datas
if attach.store_fname:
File "/odoo_env/src/openupgrade/odoo/fields.py", line 1045, in __get__
recs._fetch_field(self)
File "/odoo_env/src/openupgrade/odoo/models.py", line 3006, in _fetch_field
self._read(fnames)
File "/odoo_env/src/openupgrade/odoo/addons/base/models/ir_attachment.py", line 486, in _read
return super(IrAttachment, self)._read(fields)
File "/odoo_env/src/openupgrade/odoo/models.py", line 3099, in _read
self.env.cache.update(fetched, field, values)
File "/odoo_env/src/openupgrade/odoo/api.py", line 773, in update
self._data[field].update(zip(records._ids, values))
MemoryError
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/odoo_env/src/openupgrade/addons/website_sale/migrations/13.0.1.0/post-migration.py", line 32, in convert_image_attachments
Model.browse(attachment.res_id).image_1920 = attachment.datas
File "/odoo_env/src/openupgrade/odoo/fields.py", line 1062, in __get__
self.compute_value(recs)
File "/odoo_env/src/openupgrade/odoo/fields.py", line 2001, in compute_value
super().compute_value(records)
File "/odoo_env/src/openupgrade/odoo/fields.py", line 1150, in compute_value
env.add_to_compute(field, records)
File "/odoo_env/src/openupgrade/odoo/api.py", line 690, in add_to_compute
self.all.tocompute[field].update(records._ids)
MemoryError
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/odoo_env/src/openupgrade/odoo/api.py", line 748, in get
value = self._data[field][record._ids[0]]
KeyError: 139810
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/odoo_env/src/openupgrade/odoo/fields.py", line 1038, in __get__
value = env.cache.get(record, self)
File "/odoo_env/src/openupgrade/odoo/api.py", line 754, in get
raise CacheMiss(record, field)
odoo.exceptions.CacheMiss: ('ir.attachment(139810,).res_id', None)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/opt/venv/lib/python3.7/site-packages/openupgradelib/openupgrade.py", line 2285, in wrapped_function
version,
File "/odoo_env/src/openupgrade/addons/website_sale/migrations/13.0.1.0/post-migration.py", line 66, in migrate
convert_image_attachments(env)
File "/odoo_env/src/openupgrade/addons/website_sale/migrations/13.0.1.0/post-migration.py", line 38, in convert_image_attachments
attachment.res_id,
File "/odoo_env/src/openupgrade/odoo/fields.py", line 1045, in __get__
recs._fetch_field(self)
File "/odoo_env/src/openupgrade/odoo/models.py", line 3006, in _fetch_field
self._read(fnames)
File "/odoo_env/src/openupgrade/odoo/addons/base/models/ir_attachment.py", line 486, in _read
return super(IrAttachment, self)._read(fields)
File "/odoo_env/src/openupgrade/odoo/models.py", line 3099, in _read
self.env.cache.update(fetched, field, values)
File "/odoo_env/src/openupgrade/odoo/api.py", line 773, in update
self._data[field].update(zip(records._ids, values))
MemoryError
2025-01-15 17:23:21,082 1 ERROR odoo-upgrade odoo.modules.loading: Error executing post migration script for module website_sale
`-> website_sale_management
`-> website_sale_product_description
`-> website_sale_product_sort
`-> website_sale_product_style_badge
`-> website_sale_require_legal
:
2025-01-15 17:23:21,086 1 ERROR odoo-upgrade odoo.modules.registry: Failed to load registry
Traceback (most recent call last):
File "/odoo_env/src/openupgrade/odoo/api.py", line 748, in get
value = self._data[field][record._ids[0]]
KeyError: 139810
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/odoo_env/src/openupgrade/odoo/fields.py", line 1038, in __get__
value = env.cache.get(record, self)
File "/odoo_env/src/openupgrade/odoo/api.py", line 754, in get
raise CacheMiss(record, field)
odoo.exceptions.CacheMiss: ('ir.attachment(139810,).datas', None)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/odoo_env/src/openupgrade/odoo/api.py", line 748, in get
value = self._data[field][record._ids[0]]
KeyError: 139810
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/odoo_env/src/openupgrade/odoo/fields.py", line 1038, in __get__
value = env.cache.get(record, self)
File "/odoo_env/src/openupgrade/odoo/api.py", line 754, in get
raise CacheMiss(record, field)
odoo.exceptions.CacheMiss: ('ir.attachment(139810,).store_fname', None)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/odoo_env/src/openupgrade/odoo/fields.py", line 1147, in compute_value
records._compute_field_value(self)
File "/odoo_env/src/openupgrade/odoo/models.py", line 4021, in _compute_field_value
getattr(self, field.compute)()
File "/odoo_env/src/openupgrade/odoo/addons/base/models/ir_attachment.py", line 199, in _compute_datas
if attach.store_fname:
File "/odoo_env/src/openupgrade/odoo/fields.py", line 1045, in __get__
recs._fetch_field(self)
File "/odoo_env/src/openupgrade/odoo/models.py", line 3006, in _fetch_field
self._read(fnames)
File "/odoo_env/src/openupgrade/odoo/addons/base/models/ir_attachment.py", line 486, in _read
return super(IrAttachment, self)._read(fields)
File "/odoo_env/src/openupgrade/odoo/models.py", line 3099, in _read
self.env.cache.update(fetched, field, values)
File "/odoo_env/src/openupgrade/odoo/api.py", line 773, in update
self._data[field].update(zip(records._ids, values))
MemoryError
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/odoo_env/src/openupgrade/addons/website_sale/migrations/13.0.1.0/post-migration.py", line 32, in convert_image_attachments
Model.browse(attachment.res_id).image_1920 = attachment.datas
File "/odoo_env/src/openupgrade/odoo/fields.py", line 1062, in __get__
self.compute_value(recs)
File "/odoo_env/src/openupgrade/odoo/fields.py", line 2001, in compute_value
super().compute_value(records)
File "/odoo_env/src/openupgrade/odoo/fields.py", line 1150, in compute_value
env.add_to_compute(field, records)
File "/odoo_env/src/openupgrade/odoo/api.py", line 690, in add_to_compute
self.all.tocompute[field].update(records._ids)
MemoryError
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/odoo_env/src/openupgrade/odoo/api.py", line 748, in get
value = self._data[field][record._ids[0]]
KeyError: 139810
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/odoo_env/src/openupgrade/odoo/fields.py", line 1038, in __get__
value = env.cache.get(record, self)
File "/odoo_env/src/openupgrade/odoo/api.py", line 754, in get
raise CacheMiss(record, field)
odoo.exceptions.CacheMiss: ('ir.attachment(139810,).res_id', None)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/odoo_env/src/openupgrade/odoo/modules/registry.py", line 87, in new
odoo.modules.load_modules(registry._db, force_demo, status, update_module)
File "/odoo_env/src/openupgrade/odoo/modules/loading.py", line 489, in load_modules
force, status, report, loaded_modules, update_module, models_to_check, upg_registry)
File "/odoo_env/src/openupgrade/odoo/modules/loading.py", line 368, in load_marked_modules
upg_registry=upg_registry,
File "/odoo_env/src/openupgrade/odoo/modules/loading.py", line 256, in load_module_graph
migrations.migrate_module(package, 'post')
File "/odoo_env/src/openupgrade/odoo/modules/migration.py", line 191, in migrate_module
migrate(self.cr, installed_version)
File "/opt/venv/lib/python3.7/site-packages/openupgradelib/openupgrade.py", line 2285, in wrapped_function
version,
File "/odoo_env/src/openupgrade/addons/website_sale/migrations/13.0.1.0/post-migration.py", line 66, in migrate
convert_image_attachments(env)
File "/odoo_env/src/openupgrade/addons/website_sale/migrations/13.0.1.0/post-migration.py", line 38, in convert_image_attachments
attachment.res_id,
File "/odoo_env/src/openupgrade/odoo/fields.py", line 1045, in __get__
recs._fetch_field(self)
File "/odoo_env/src/openupgrade/odoo/models.py", line 3006, in _fetch_field
self._read(fnames)
File "/odoo_env/src/openupgrade/odoo/addons/base/models/ir_attachment.py", line 486, in _read
return super(IrAttachment, self)._read(fields)
File "/odoo_env/src/openupgrade/odoo/models.py", line 3099, in _read
self.env.cache.update(fetched, field, values)
File "/odoo_env/src/openupgrade/odoo/api.py", line 773, in update
self._data[field].update(zip(records._ids, values))
MemoryError
2025-01-15 17:23:21,087 1 CRITICAL odoo-upgrade odoo.service.server: Failed to initialize database `odoo-upgrade`.
Traceback (most recent call last):
File "/odoo_env/src/openupgrade/odoo/api.py", line 748, in get
value = self._data[field][record._ids[0]]
KeyError: 139810
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/odoo_env/src/openupgrade/odoo/fields.py", line 1038, in __get__
value = env.cache.get(record, self)
File "/odoo_env/src/openupgrade/odoo/api.py", line 754, in get
raise CacheMiss(record, field)
odoo.exceptions.CacheMiss: ('ir.attachment(139810,).datas', None)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/odoo_env/src/openupgrade/odoo/api.py", line 748, in get
value = self._data[field][record._ids[0]]
KeyError: 139810
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/odoo_env/src/openupgrade/odoo/fields.py", line 1038, in __get__
value = env.cache.get(record, self)
File "/odoo_env/src/openupgrade/odoo/api.py", line 754, in get
raise CacheMiss(record, field)
odoo.exceptions.CacheMiss: ('ir.attachment(139810,).store_fname', None)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/odoo_env/src/openupgrade/odoo/fields.py", line 1147, in compute_value
records._compute_field_value(self)
File "/odoo_env/src/openupgrade/odoo/models.py", line 4021, in _compute_field_value
getattr(self, field.compute)()
File "/odoo_env/src/openupgrade/odoo/addons/base/models/ir_attachment.py", line 199, in _compute_datas
if attach.store_fname:
File "/odoo_env/src/openupgrade/odoo/fields.py", line 1045, in __get__
recs._fetch_field(self)
File "/odoo_env/src/openupgrade/odoo/models.py", line 3006, in _fetch_field
self._read(fnames)
File "/odoo_env/src/openupgrade/odoo/addons/base/models/ir_attachment.py", line 486, in _read
return super(IrAttachment, self)._read(fields)
File "/odoo_env/src/openupgrade/odoo/models.py", line 3099, in _read
self.env.cache.update(fetched, field, values)
File "/odoo_env/src/openupgrade/odoo/api.py", line 773, in update
self._data[field].update(zip(records._ids, values))
MemoryError
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/odoo_env/src/openupgrade/addons/website_sale/migrations/13.0.1.0/post-migration.py", line 32, in convert_image_attachments
Model.browse(attachment.res_id).image_1920 = attachment.datas
File "/odoo_env/src/openupgrade/odoo/fields.py", line 1062, in __get__
self.compute_value(recs)
File "/odoo_env/src/openupgrade/odoo/fields.py", line 2001, in compute_value
super().compute_value(records)
File "/odoo_env/src/openupgrade/odoo/fields.py", line 1150, in compute_value
env.add_to_compute(field, records)
File "/odoo_env/src/openupgrade/odoo/api.py", line 690, in add_to_compute
self.all.tocompute[field].update(records._ids)
MemoryError
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/odoo_env/src/openupgrade/odoo/api.py", line 748, in get
value = self._data[field][record._ids[0]]
KeyError: 139810
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/odoo_env/src/openupgrade/odoo/fields.py", line 1038, in __get__
value = env.cache.get(record, self)
File "/odoo_env/src/openupgrade/odoo/api.py", line 754, in get
raise CacheMiss(record, field)
odoo.exceptions.CacheMiss: ('ir.attachment(139810,).res_id', None)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/odoo_env/src/openupgrade/odoo/service/server.py", line 1194, in preload_registries
registry = Registry.new(dbname, update_module=update_module)
File "/odoo_env/src/openupgrade/odoo/modules/registry.py", line 87, in new
odoo.modules.load_modules(registry._db, force_demo, status, update_module)
File "/odoo_env/src/openupgrade/odoo/modules/loading.py", line 489, in load_modules
force, status, report, loaded_modules, update_module, models_to_check, upg_registry)
File "/odoo_env/src/openupgrade/odoo/modules/loading.py", line 368, in load_marked_modules
upg_registry=upg_registry,
File "/odoo_env/src/openupgrade/odoo/modules/loading.py", line 256, in load_module_graph
migrations.migrate_module(package, 'post')
File "/odoo_env/src/openupgrade/odoo/modules/migration.py", line 191, in migrate_module
migrate(self.cr, installed_version)
File "/opt/venv/lib/python3.7/site-packages/openupgradelib/openupgrade.py", line 2285, in wrapped_function
version,
File "/odoo_env/src/openupgrade/addons/website_sale/migrations/13.0.1.0/post-migration.py", line 66, in migrate
convert_image_attachments(env)
File "/odoo_env/src/openupgrade/addons/website_sale/migrations/13.0.1.0/post-migration.py", line 38, in convert_image_attachments
attachment.res_id,
File "/odoo_env/src/openupgrade/odoo/fields.py", line 1045, in __get__
recs._fetch_field(self)
File "/odoo_env/src/openupgrade/odoo/models.py", line 3006, in _fetch_field
self._read(fnames)
File "/odoo_env/src/openupgrade/odoo/addons/base/models/ir_attachment.py", line 486, in _read
return super(IrAttachment, self)._read(fields)
File "/odoo_env/src/openupgrade/odoo/models.py", line 3099, in _read
self.env.cache.update(fetched, field, values)
File "/odoo_env/src/openupgrade/odoo/api.py", line 773, in update
self._data[field].update(zip(records._ids, values))
MemoryError
2025-01-15 17:23:21,090 1 INFO odoo-upgrade odoo.service.server: Initiating shutdown
2025-01-15 17:23:21,090 1 INFO odoo-upgrade odoo.service.server: Hit CTRL-C again or send a second signal to force the shutdown.
2025-01-15 17:23:21,090 1 INFO odoo-upgrade odoo.sql_db: ConnectionPool(used=0/count=0/max=64): Closed 1 connections
i tried using openupgrade.chunked()
to iterate over the attachments. it doesn’t prevent the MemoryError
errors, but it stops trying later.