odoo/openerp
Olivier Dony 2b1cdd551f [FIX] fields.float: avoid non-deterministic side-effects on other cursors
In 5efac22043 and
1cf5723835 the computation
of the decimal precision of float fields was modified to
reuse a random cursor from the request environments.
Environment.envs is a WeakSet, subject to unpredictable
garbage collections.

This could cause hard-to-diagnose problems by executing
a SELECT query in a cursor that is supposed to be
otherwise idle and untouched.

As an example, this could cause a transaction start in a
cursor that was just committed/rolled back,
and was waiting for another operation to complete.

One such case happened semi-randomly during a module
installation triggered from the web client, where the request
cursor is committed and waiting for the registry
initialization done with a different cursor,
in the middle of _button_immediate_function()

After the registry initialization, the request cursor is
used again to determine the next action (ir.actions.todo),
and this could cause a TransactionRollbackError if the
request cursor was used during the initialization.

Using a new cursor every time is much safer, simpler,
and will not cause any significant performance hit,
because it will usually grab an available connection
from the connection pool, rather than create a new one.

Fixes opw-649151
2015-09-15 19:38:19 +02:00
..
addons [I18N] Update translation terms from Transifex 2015-09-13 01:55:09 +02:00
cli [FIX] cli: Backport client command discovery optimization 2015-07-12 16:40:55 +02:00
conf [MERGE] openerp.pooler is deprecated. 2013-03-27 17:40:45 +01:00
modules [FIX] module loading: pre/post_init_hook execution 2015-07-29 12:30:14 +02:00
osv [FIX] fields.float: avoid non-deterministic side-effects on other cursors 2015-09-15 19:38:19 +02:00
report [MERGE] forward port of branch 7.0 up to 99c87b6 2015-05-21 16:33:45 +02:00
service [MERGE] Forward-port saas-3 up to rev. 10e6ad1355 2015-09-07 11:18:10 +02:00
tests [IMP] base: tests, move patch_order to TransactionCase 2015-09-08 11:53:18 +02:00
tools [FIX] core: tools.html_sanitize: allow svg images 2015-09-11 16:42:47 +02:00
workflow [IMP] workflow: add sequence for ordering workflow transitions (split/join mode especially for XOR) 2014-08-05 12:26:28 +02:00
PKG-INFO [REM] netrpc: KILL EVERYBODY 2013-02-21 13:18:25 +01:00
__init__.py [IMP] fields: turn field.digits and column.digits into dynamic properties 2015-03-23 14:36:15 +01:00
api.py [IMP] doc: recommend not using @api.one 2015-09-15 14:38:45 +02:00
exceptions.py [ADD] doc: new documentation, with training tutorials, and new scaffolding 2014-08-22 17:51:20 +02:00
fields.py [FIX] fields: add support for date/datetime null values in field methods 2015-09-07 10:27:34 +02:00
http.py [FIX] http: no auto-load for modules not installable 2015-09-09 13:56:55 +02:00
import_xml.rng [MERGE] ir-ui-view split active and show_customize 2014-08-31 16:56:44 +02:00
loglevels.py [REF] logging: removed pseudo log-level TEST. 2013-03-26 16:58:44 +01:00
models.py [FIX] models: fix write() on inherited field that is not a column of parent 2015-09-11 17:35:24 +02:00
netsvc.py [MERGE] forward port of branch 7.0 up to 1c0bc7c 2015-06-30 12:47:27 +02:00
pooler.py [IMP] registry: avoid every direct access registry.db, and rename attribute as registry._db 2014-04-09 15:35:15 +02:00
release.py [REL] Odoo 8.0 2014-09-18 12:11:18 +02:00
sql_db.py [FIX] Cursor.closed property 2015-05-11 16:24:33 +02:00