TRANSACTIONAL ERROR

352 views
Skip to first unread message

Diego Vazquez

unread,
Feb 8, 2016, 3:01:34 AM2/8/16
to Usuarios Odoo / OpenERP en España
Buenos días,
tengo un problema al importar a través de http request grandes cantidades de productos, clientes y facturas, al producirse concurrencia en la creación / actualización de registros en una versión 8:

2016-02-08 07:41:05,353 7226 ERROR odoo_xxx openerp.sql_db: bad query: UPDATE "account_invoice_line" SET "partner_id"=23,"write_uid"=6,"write_date"=(now() at time zone 'UTC') WHERE id IN (752)
Traceback (most recent call last):
  File "/opt/openerp/odoo_8/OCA/OCB/openerp/sql_db.py", line 234, in execute
    res = self._obj.execute(query, params)
TransactionRollbackError: could not serialize access due to concurrent update
CONTEXT:  SQL statement "SELECT 1 FROM ONLY "public"."res_partner" x WHERE "id" OPERATOR(pg_catalog.=) $1 FOR KEY SHARE OF x"

He probado a instalar y adaptar  el módulo base_res_users_streamline, pero sigue reproduciéndose el error. He leído también una "solución" para el procesado de grandes lotes de datos, pero desconozco que implicaciones puede tener para la integridad de datos:
from psycopg2.extensions import ISOLATION_LEVEL_READ_COMMITTED 
cr._cnx.set_isolation_level(ISOLATION_LEVEL_READ_COMMITTED) (en la función que llama la operación)

Cualquier tipo de ayuda o información al respecto será bienvenida

Pedro Manuel Baeza Romero

unread,
Feb 8, 2016, 3:04:04 AM2/8/16
to Usuarios Odoo / OpenERP en España

--
Has recibido este mensaje porque estás suscrito al grupo "Usuarios Odoo / OpenERP en España" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a openerp-spain-u...@googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.

Diego Vazquez

unread,
Feb 8, 2016, 3:33:23 AM2/8/16
to Usuarios Odoo / OpenERP en España
Gracias, Pedro, pero el error sigue reproduciéndose exactamente de la misma manera. Por aportar más información, tengo 3 funciones que realizan las peticiones de productos, clientes y facturas, y están añadidas al ir.cron. El problema radica en que el de facturas llama a los otros 2, y pueden coincidir en el tiempo (que es cuándo se produce el error)

Pedro Manuel Baeza Romero

unread,
Feb 8, 2016, 3:39:22 AM2/8/16
to Usuarios Odoo / OpenERP en España
Tendrás que programar entonces esas tareas de manera serializada, o establecer un semáforo que evite la actualización simultánea. Puedes utilizar OCA/connector para encolar trabajos también.

Un saludo.

El 8 de febrero de 2016, 9:33, Diego Vazquez <diego....@serinfer.com> escribió:
Gracias, Pedro, pero el error sigue reproduciéndose exactamente de la misma manera. Por aportar más información, tengo 3 funciones que realizan las peticiones de productos, clientes y facturas, y están añadidas al ir.cron. El problema radica en que el de facturas llama a los otros 2, y pueden coincidir en el tiempo (que es cuándo se produce el error)

--

Diego Vazquez

unread,
Feb 8, 2016, 3:50:38 AM2/8/16
to Usuarios Odoo / OpenERP en España
Las 2 primeras soluciones son las que estaba evitando utilizar. Leeré la documentación de connector y a ver si aporta algo de luz en el asunto. Muchas gracias.
Un saludo
Reply all
Reply to author
Forward
0 new messages