** Branch linked: lp:~therp-nl/openobject-
addons/[email protected]_fix_lp1015995-trunk
** Changed in: openobject-addons
Status: New => Fix Released
--
You received this bug notification because you are a member of OpenERP
Indian Team, which is subscribed to OpenERP Addons.
https://bugs.launchpad.net/bugs/1015995
Title:
Runaway cpu and temporary table problem when creating view in
account_analytic_analysis
Status in OpenERP Addons (modules):
Fix Released
Bug description:
The view account_analytic_analysis_summary_user contains an
unqualified join in a subselect, leading to a cartesian product of the
form res_users * res_users * account_analytic_account.
When these tabels contain a high number of rows, the attempt to create
the view will result in 100% cpu usage, and/or may crash.
We see this in the log:
Server Traceback (most recent call last):
File "/home/oerhbrupg61/openerp-web/addons/web/common/http.py", line 592,
in send
result = openerp.netsvc.dispatch_rpc(service_name, method, args)
File "/home/oerhbrupg61/bzr/openobject-server/openerp/netsvc.py", line 360,
in dispatch_rpc
result = ExportService.getService(service_name).dispatch(method, params)
File
"/home/oerhbrupg61/bzr/openobject-server/openerp/service/web_services.py", line
586, in dispatch
res = fn(db, uid, *params)
File "/home/oerhbrupg61/bzr/openobject-server/openerp/osv/osv.py", line
167, in execute_kw
return self.execute(db, uid, obj, method, *args, **kw or {})
File "/home/oerhbrupg61/bzr/openobject-server/openerp/osv/osv.py", line
121, in wrapper
return f(self, dbname, *args, **kwargs)
File "/home/oerhbrupg61/bzr/openobject-server/openerp/osv/osv.py", line
176, in execute
res = self.execute_cr(cr, uid, obj, method, *args, **kw)
File "/home/oerhbrupg61/openobject-addons/audittrail/audittrail.py", line
495, in execute_cr
return fct_src(cr, uid, model, method, *args)
File "/home/oerhbrupg61/bzr/openobject-server/openerp/osv/osv.py", line
164, in execute_cr
return getattr(object, method)(cr, uid, *args, **kw)
File "/home/oerhbrupg61/bzr/openobject-server/openerp/osv/orm.py", line
3406, in read
result = self._read_flat(cr, user, select, fields, context, load)
File "/home/oerhbrupg61/bzr/openobject-server/openerp/osv/orm.py", line
3465, in _read_flat
cr.execute(query, (tuple(sub_ids),))
File "/home/oerhbrupg61/bzr/openobject-server/openerp/sql_db.py", line 152,
in wrapper
return f(self, *args, **kwargs)
File "/home/oerhbrupg61/bzr/openobject-server/openerp/sql_db.py", line 212,
in execute
res = self._obj.execute(query, params)
OperationalError: could not write block 1059628 of temporary file: No space
left on device
HINT: Perhaps out of disk space?
The problem view creation looks like this (in file account-
analytic_analysis.py):
def init(self, cr):
tools.sql.drop_view_if_exists(cr,
'account_analytic_analysis_summary_user')
cr.execute('CREATE OR REPLACE VIEW
account_analytic_analysis_summary_user AS (' \
'SELECT ' \
'(u.account_id * u.max_user) + u."user" AS id, ' \
'u.account_id AS account_id, ' \
'u."user" AS "user", ' \
'COALESCE(SUM(l.unit_amount), 0.0) AS unit_amount ' \
'FROM ' \
'(SELECT ' \
'a.id AS account_id, ' \
'u1.id AS "user", ' \
'MAX(u2.id) AS max_user ' \
'FROM ' \
'res_users AS u1, ' \
'res_users AS u2, ' \
'account_analytic_account AS a ' \
'GROUP BY u1.id, a.id ' \
') AS u ' \
'LEFT JOIN ' \
'(SELECT ' \
'l.account_id AS account_id, ' \
'l.user_id AS "user", ' \
'SUM(l.unit_amount) AS unit_amount ' \
'FROM account_analytic_line AS l, ' \
'account_analytic_journal AS j ' \
'WHERE (j.type = \'general\') and (j.id=l.journal_id) ' \
'GROUP BY l.account_id, l.user_id ' \
') AS l '
'ON (' \
'u.account_id = l.account_id ' \
'AND u."user" = l."user"' \
') ' \
'GROUP BY u."user", u.account_id, u.max_user' \
')')
The problem might be resolved by rewriting the view to prevent the
cartesian product explosion.
The problematic code is present in 6.0, 6.1 and in trunk.
We will try to submit a fix.
To manage notifications about this bug go to:
https://bugs.launchpad.net/openobject-addons/+bug/1015995/+subscriptions
_______________________________________________
Mailing list: https://launchpad.net/~openerp-india
Post to : [email protected]
Unsubscribe : https://launchpad.net/~openerp-india
More help : https://help.launchpad.net/ListHelp