Skip to content
Snippets Groups Projects
Commit fd06a7fe authored by fw-bot's avatar fw-bot
Browse files

[FIX] profiler: be more pesimistic


The profiler was too optimistic. If the local variable self was not a
cursor, it assumed it was automatically an Odoo model.
Instead, only do the custom tracer methods when self is an instance of
BaseModel.

Full scenario to reproduce explained at odoo/odoo#39237

In case a method like the default_get of utm.mixing was profiled, the
tracer crashed when evaluating `__bool__(request)`.
The tracer considered self as an Odoo model while it was a werkzeug
instance with its custom __getattr__ that crashed while trying to
retrieve the content of `_name`.

Fixes odoo/odoo#39237

closes odoo/odoo#39524

X-original-commit: c8fa8fb0
Signed-off-by: default avatarMartin Trigaux (mat) <mat@odoo.com>
parent 0562940f
Branches
Tags
No related merge requests found
......@@ -35,7 +35,7 @@ class _LogTracer(object):
in_self = frame.f_locals['self']
if isinstance(in_self, (odoo.sql_db.Cursor, odoo.sql_db.TestCursor)):
if not isinstance(in_self, odoo.models.BaseModel):
return self.tracer
model = getattr(in_self, '_name', None)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment