Skip to content

[FIX] portal_backend: assert the parent menus group on registry load - #466

Open
joa-adhoc wants to merge 1 commit into
ingadhoc:18.0from
adhoc-dev:18.0-t-77384-embed-joa
Open

joa-adhoc wants to merge 1 commit into
ingadhoc:18.0from
adhoc-dev:18.0-t-77384-embed-joa

Conversation

@joa-adhoc

Copy link
Copy Markdown
Contributor

Tarea: https://www.adhoc.inc/odoo/project.task/77384

Backport a 18.0 de #436 (a480ee6, 19.0).

Qué duele

portal_backend les da base.group_user a los menús padre sin grupo dentro de load_menus. En 18.0 eso corre en rutas de solo lectura (/web/session/get_session_info, el webclient), así que el write rompe el cursor:

ERROR: cannot execute INSERT in a read-only transaction
cannot execute INSERT in a read-only transaction, retrying with a read/write cursor

La request se reintenta y termina bien, pero la query fallida queda logueada como error y eso pone en rojo la corrida de tests. Cada test hace rollback del write, así que se repite en cada uno. Hoy lo dispara runbot-oba de Tuqui-AI/odoo-addons#191, cuyos tests llaman a get_session_info.

Qué cambia

Lo mismo que en 19.0: el write pasa de load_menus a _register_hook, que corre con cursor de escritura al cargar el registry. Único ajuste: en 18.0 el campo es groups_id.

test_load_menus_cache, que existe solo en 18.0, sigue valiendo: load_menus ya no escribe nunca.

Cómo se prueba

La rama tiene el mismo nombre que la de Tuqui-AI/odoo-addons#191 e ingadhoc/odoo-saas#1026, así que runbot arma una sola build. Con este fix, runbot-oba de esa build no tiene que loguear el INSERT fallido.

Para mergear

Ya está en 19.0: @roboadhoc r+ nobump fw=no.

Backport of a480ee6 (19.0, ingadhoc#436).

Granting base.group_user to the parent menus without group was done while
loading the menus, but on 18.0 that runs inside readonly routes
(/web/session/get_session_info, the webclient), so the write breaks its
cursor with "cannot execute INSERT in a read-only transaction". The request
is retried with a read/write cursor, but the failed query is already logged
as an error, which turns a test run red: each test rolls the write back.

Doing it on _register_hook keeps the case covered and runs on a read/write
cursor. The field is groups_id on 18.0.

(cherry picked from commit a480ee6)
@roboadhoc

Copy link
Copy Markdown
Contributor

Pull request status dashboard

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants