summaryrefslogtreecommitdiff
path: root/addons/web/static/src/js/views/basic/basic_model.js
diff options
context:
space:
mode:
authorAndrea Grazioso (agr-odoo) <agr@odoo.com>2020-11-25 08:48:00 +0000
committerAndrea Grazioso (agr-odoo) <agr@odoo.com>2020-11-26 16:48:44 +0000
commit9fe632e08f2d3c9813a30b286f1f6466467a35b1 (patch)
treea254ccd951fae7adf1d278f50c71e20ba0afd434 /addons/web/static/src/js/views/basic/basic_model.js
parentf03311815b970a4548dcdb1c39d00f224a5d6ae9 (diff)
[FIX] base: avoid infinite recursion on attachments search
Steps to reproduce: Create a new local Odoo DB Create another company on the DB install the CRM module Create an opportunity on the CRM app for each company. Execute This server action (CHANGE THE res_id TO THE IDs OF THE OPPORTUNITY CREATED): ``` for _ in range(0, 300): for _ in range (0, 75): env['ir.attachment'].sudo().create({'name': 'test','res_model': 'crm.lead', 'res_id': 31, 'type': 'binary'}) for _ in range (0, 75): env['ir.attachment'].sudo().create({'name': 'test','res_model': 'crm.lead', 'res_id': 45, 'type': 'binary'}) ``` go to the Settings / Technical / Database Structure / Attachments. Server will look in endless call because the search try to retrieve `limit` records, but after applying company record rule we have `limit - e`, so it begin a second search for e records. Even the second search will look for limit and possibly will find less, starting a third... If the sub call is aware of how much records we actually need after checking permission, we can return the recordset if we have collected enough opw-2369722 closes odoo/odoo#62448 X-original-commit: 6a8f28c4d0f9df7cd8451f4caf4f3bf7d64330da Signed-off-by: agr-odoo <agr-odoo@users.noreply.github.com>
Diffstat (limited to 'addons/web/static/src/js/views/basic/basic_model.js')
0 files changed, 0 insertions, 0 deletions