232f34d2267f7fcdd358b14bbce2cff2781846c2
The following situation happened with module industry_fsm, when trying to delete a cancelled sales order corresponding to a task. When doing so, the server crashes with error "Could not find all values of X to flush them", which means that a dirty field (pending update) has lost its value from cache. The issue is related to recursive computed fields. Before deleting a record, method unlink() invokes modified(), which determines all the fields that depend on the record to be deleted, and marks them to recompute. Those fields should be recomputed after the record is deleted, and not before. We found out that the recursive call to modified() made for recursive fields can force the recomputation of the recursive field itself before the record is deleted, which causes unlink() to crash. The fix consists in marking the fields for recomputation at the very end of method modified(), after all the fields to recompute have been determined. This ensures that the processing of recursive fields always uses the current value of the field instead of its recomputed value. X-original-commit: 1f5293bc63ae7b06fd0df8d509dc7fafaa016a22 Part-of: odoo/odoo#143644
…
…
…
Odoo
Odoo is a suite of web based open source business apps.
The main Odoo Apps include an Open Source CRM, Website Builder, eCommerce, Warehouse Management, Project Management, Billing & Accounting, Point of Sale, Human Resources, Marketing, Manufacturing, ...
Odoo Apps can be used as stand-alone applications, but they also integrate seamlessly so you get a full-featured Open Source ERP when you install several Apps.
Getting started with Odoo
For a standard installation please follow the Setup instructions from the documentation.
To learn the software, we recommend the Odoo eLearning, or Scale-up, the business game. Developers can start with the developer tutorials
Languages
Python
49.6%
JavaScript
47.8%
SCSS
2%
CSS
0.3%
HTML
0.2%