f4041de4ed51aee4dc986d77fdf1f2dc9283318b
Using `request.env` should be reserved for code that lies outside of model methods (typically: controllers). Model methods have to use the appropriate `self.env`. This particular case caused frequent Python-PostgreSQL undetected deadlocks during installations of website-related modules in 12.0. One way to reproduce it was to trigger the installation of both `website` and `website_form` in a single transaction, with neither pre-installed. Installing Apps that depend on both would do the job, such as `website_sale`, provided that GEOIP is available on the system. In details: During installation of `website`, new attachments creation would call get_current_website (see602807acdfand4f6ec1cd2a), using the wrong database cursor: the one from the request instead of the one for the installation, as provided by `ir.module.module._button_immediate_function`. This would acquire database locks on `res.country` and `ir.model` in the wrong transaction, later blocking alterations to `ir.model` in the installation transaction, e.g. for website_form's 'website_form_access' column. This combination of events was possible before 12.0, but more difficult to reproduce as module installations used to happen with a super-user account, ignoring ACL checks and therefore not locking `ir.model`.
…
…
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, Purchase Management, ...
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.
Then follow the developer tutorials
Languages
Python
49.6%
JavaScript
47.8%
SCSS
2%
CSS
0.3%
HTML
0.2%